MSBUILDファイルは、ソリューションを公開する(VS 2013で作成し、VS 2017に移植された)リモートサーバーに掲載されています。問題のある線はこれです。
_<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
_
コマンドを実行すると、
_"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild" WebSite1_Web_configs.build /p:Configuration=Integracion;Platform="AnyCPU" /p:VisualStudioVersion=15.0
_
コンパイル後、このエラーで終了します。
_Error MSB4062 The "TransformXml" task could not be loaded from the Assembly C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.Tasks.dll
_
もちろん、バージョンは12.0ではなく15.0になる必要があるため、ロードできません。
私が試したこと:
MSBUILDを呼び出すコマンドに_/p:VisualStudioVersion=15.0
を追加します。うまくいきません。
*。csprojファイル、要素の変更
_<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
_
にとって:
_<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
_
うまくいきません。
そのため、MSBUILDファイル内の$(VisualStudioVersion)
で正しいVSバージョンを取得するにはどうすればよいですか。
Visual Studio 2017では、.csprojファイルを編集する代わりに、Visual Studio Package Managerコンソール(ツール - > NUGETパッケージマネージャー - >パッケージマネージャコンソール)に簡単に移動し、web.targetsをインストールできます。
Install-Package MSBuild.Microsoft.VisualStudio.Web.targets
_