programing tip

Microsoft.Web.Publishing.Tasks.dll에서 TransformXml 작업을로드 할 수 없습니다.

itbloger 2020. 9. 7. 07:53
반응형

Microsoft.Web.Publishing.Tasks.dll에서 TransformXml 작업을로드 할 수 없습니다.


누구든지이 오류를 보았고 해결 방법을 알고 있습니까?

"TransformXml"작업은 어셈블리 C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll에서로드 할 수 없습니다.

파일 또는 어셈블리 'file : /// C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll'또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 파일을 찾을 수 없습니다.

선언이 올바른지, 어셈블리 및 모든 해당 종속성을 사용할 수 있는지, 작업에 Microsoft.Build.Framework.ITask를 구현하는 공용 클래스가 포함되어 있는지 확인합니다.

SQL Server가 설치되어 있지 않을 때 문제가 있다고 다른 곳에서 읽었습니다. 하지만 SQL Express 2012 x64가 SP1과 함께 설치되어 있습니다. VS 2013 Professional도 실행 중입니다.

나는 문제없이 VS 2012 Express 에서이 똑같은 솔루션을 실행했습니다.


Dai Bok 및 emalamisura가 제공 한 답변은 Visual Studio 2012를 사용하는 한 잘 작동합니다. VS 2013의 경우에도 실패합니다. 모든 버전의 Visual Studio에서이 작업을 수행하려면 다음을 수행해야합니다.

  • 로드에 실패한 프로젝트의 프로젝트 파일 (.csproj) 열기
  • 검색 <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
  • 다음으로 변경 <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets" />
  • 프로젝트 다시로드

그러면 올바른 버전의 Visual Studio가 동적으로 적절하게 설정됩니다.


내 작업을 수행하기 위해 방금 v10.0폴더를 복사 하고 이름을으로 변경했는데 v11.0그때부터는 잘 작동하는 것 같습니다. 지금은 이것이 빠른 수정입니다.

이것이 최선의 해결책은 아니고 작동하지만 Windows 7 용 Microsoft Windows SDK 및 .NET Framework 4 Windows 7 및 .NET Framework 4 용 Windows SDK를 설치하려고 했지만 시간이 오래 걸립니다. 다운로드.


문제를 해결하려면

  1. 컴퓨터에서 Visual Studio 설치 프로그램 찾기
  2. 클릭하거나 탭하여 설치 프로그램을 시작한 다음 수정을 선택합니다.
  3. 개별 구성 요소 화면에서 Asp.net 및 웹 개발 도구를 선택한 다음 수정 / 설치를 선택합니다.

이것은 언급 된 경로에 dll을 생성하므로 문제가 해결되었습니다.


저는 며칠 동안 빌드 서버에서이 문제와 싸우고 있었기 때문에 제가 찾은 해결책을 문서화 할 것이라고 생각했습니다. 첫째, 내 빌드 서버 에는 웹 게시 확장이 설치되어 있습니다. TransformXml 작업을 웹 응용 프로그램 프로젝트 내에서 마음껏 사용할 수 있습니다.

웹 응용 프로그램 프로젝트 외부 에서 사용하기 위해 UsingTask 요소를 내 프로젝트에 추가하고 ms 빌드 속성을 사용하여 올바른 위치를 지정하려고했습니다 (Benjamin이 설명했듯이). 그러나 그들은 내 빌드 서버에 없었습니다 (빌드 서버의 파일 시스템에 쉽게 액세스 할 수있는 사람들은 아마도 이것을 건너 뛰고 Visual Studio에 관련 패키지를 설치할 수 있습니다). 저는 비주얼 스튜디오 버전을 하드 코딩하기까지했지만 항상 그 오류가 발생했습니다.

마침내 포기하고 로컬 PC에서 DLL을 가져 왔습니다.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.XmlTransform.dll

소스 제어에 업로드하고 해당 폴더를 내 빌드의 작업 공간에 추가했습니다 (빌드 정의 편집-> 소스 설정-> 소스 제어 폴더). 거기에서 폴더를 참조 할 필요조차 없습니다. 다음은 UsingTask의 모습입니다.

  <UsingTask TaskName="TransformXml" AssemblyFile="Microsoft.Web.Publishing.Tasks.dll" />

이제 TransformXml 작업을 모든 프로젝트의 내 마음대로 사용할 수 있습니다.


VisualStudio 폴더에는 v12.0, v14.0 및 v15.0 만 있기 때문에 프로젝트 파일을 편집하고 참조 경로를 v10.0에서 v14.0으로 변경합니다. 그런 다음 프로젝트가 성공적으로 빌드됩니다.

전에:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

후:

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

VS2019의 경우

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(MSBuildToolsVersion

나는 대체 MSBuildToolsVersion와 함께 VisualStudioVersion.


이에 대한 정답은 해당 프로젝트를 언로드 한 다음 csproj 파일을 편집하고 10.0 경로를 참조하는 항목을 찾은 다음 대신 11.0을 가리 키도록 변경하는 것입니다.


You need two things to make it work:

1) Install Visual Studio Build Tools (You don't need the whole Visual Studio, only the VS Build Tools) with selected "Web development build tools" option on your build server https://www.visualstudio.com/pl/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15

2) Ensure that path to Microsoft.Web.Publishing.Tasks.dll is correct

  <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(MSBuildToolsVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />

참고URL : https://stackoverflow.com/questions/20358747/transformxml-task-could-not-be-loaded-from-microsoft-web-publishing-tasks-dll

반응형