【发布时间】:2011-03-09 18:36:54
【问题描述】:
在我的一生中,我找不到这个值的实际设置位置。它应该指向 C:\Program Files\MSBuild,但在我们的构建框上,它指向 C:。我该如何更改?
【问题讨论】:
标签: visual-studio deployment msbuild
在我的一生中,我找不到这个值的实际设置位置。它应该指向 C:\Program Files\MSBuild,但在我们的构建框上,它指向 C:。我该如何更改?
【问题讨论】:
标签: visual-studio deployment msbuild
MSBuildExtensionsPath32 由 MSBuild 在内部设置。 (BuildEngine.BuildPropertyGroup.SetExtensionsPathProperties)
但您可以通过设置环境变量来覆盖它。
SET MSBuildExtensionsPath="C:\Program Files\MSBuild"
或者您可以覆盖项目文件中的值:
<PropertyGroup>
<MSBuildExtensionsPath>C:\Users\madgnome\Desktop\msbuild</MSBuildExtensionsPath>
<!-- It works too with relative path -->
<!--<MSBuildExtensionsPath>..\msbuild</MSBuildExtensionsPath>-->
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
【讨论】:
这是一个非常古老的问题,但我在使用 MSBuild 16.0 版(“相当于”Visual Studio 2019)时遇到了类似的问题。
在我的例子中,我有一个命令行选项,将构建工具设置为我的构建服务器上不存在的旧版本。
我必须使用/tv:"Current" 来让构建正确设置MSBuildExtensionsPath 变量
【讨论】:
"Current" 甚至没有被提及为有效选项。他们将 4.0 列为最新的有效选项,这正是我使用的。