web-dev-qa-db-ja.com

MSBuildファイル内のVS 2017の正しい$(VisualStudioVersion)を取得します

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バージョンを取得するにはどうすればよいですか。

9
tastydb

Visual Studio 2017では、.csprojファイルを編集する代わりに、Visual Studio Package Managerコンソール(ツール - > NUGETパッケージマネージャー - >パッケージマネージャコンソール)に簡単に移動し、web.targetsをインストールできます。

Install-Package MSBuild.Microsoft.VisualStudio.Web.targets
 _
0
sandyiit