【问题标题】:MSBuildExtensionsPath32 not set correctly?MSBuildExtensionsPath32 设置不正确?
【发布时间】:2011-03-09 18:36:54
【问题描述】:

在我的一生中,我找不到这个值的实际设置位置。它应该指向 C:\Program Files\MSBuild,但在我们的构建框上,它指向 C:。我该如何更改?

【问题讨论】:

    标签: visual-studio deployment msbuild


    【解决方案1】:

    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" />
    

    【讨论】:

    • 谢谢。我玩弄了 SET 命令,这让我克服了那个错误,但又引入了另一个错误。我想我会把它交给我的建筑师,看看他会带来什么。
    【解决方案2】:

    这是一个非常古老的问题,但我在使用 MSBuild 16.0 版(“相当于”Visual Studio 2019)时遇到了类似的问题。

    在我的例子中,我有一个命令行选项,将构建工具设置为我的构建服务器上不存在的旧版本。

    我必须使用/tv:"Current" 来让构建正确设置MSBuildExtensionsPath 变量

    【讨论】:

    • 是的,MSBuild 过去和现在都是一团糟。不过,.NET Core 肯定会更好……但我仍然希望微软能够让 project.json 系统正常工作。唉。
    • 是的,特别是因为文档不完整 - 在我查看的文档的情况下,"Current" 甚至没有被提及为有效选项。他们将 4.0 列为最新的有效选项,这正是我使用的。
    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 2011-05-28
    相关资源
    最近更新 更多