【问题标题】:Why doesn't Directory.Build.props work when building a solution using Visual Studio 2017?为什么在使用 Visual Studio 2017 构建解决方案时 Directory.Build.props 不起作用?
【发布时间】:2018-10-18 03:56:44
【问题描述】:

我有一个 Directory.Build.props 文件与 .sln 文件位于同一目录中。

 <Project>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <DocumentationFile>bin\Debug\$(MSBuildProjectName).xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
  <DocumentationFile>bin\Release\$(MSBuildProjectName).xml</DocumentationFile>
</PropertyGroup>
</Project>

当我使用 MSBuild 构建解决方案时,我能够正确生成 XML 文件。但是,在 Visual Studio 中使用 Build -> Rebuild Solution 任务不会生成 XML 文件。

与 MSbuild 相比,Visual Studio 2017 构建和使用 Directory.Build.props 的方式有什么不同吗?

【问题讨论】:

  • 您是否重新打开了 Visual Studio?目前有必要至少关闭解决方案并重新打开它。对于旧的项目系统(非 .net 核心/标准项目),甚至每次更改文件时都可能需要这样做。

标签: visual-studio msbuild


【解决方案1】:

我已将 directory.build.props 添加为解决方案项。这以某种方式阻止了 Visual Studio 将其拾取并在构建过程中使用它。一旦我将其作为解决方案项删除,它就可以正常工作了。

【讨论】:

  • 感谢您在这里分享您的解决方案,您可以接受它作为答案。这可能对阅读此主题的其他社区成员有益,我们可以关闭此主题,谢谢。
  • @LeoLiu-MSFT:你有什么解释为什么会这样吗?
  • 这听起来像一个错误。
  • 对我来说不是这样;但是,cs-NET 的回答对我有所帮助(删除您的 .vs 目录,该目录以某种方式缓存了这些文件的存在)。
  • 清理 .vs 文件夹也为我纠正了这个问题
【解决方案2】:

您可能还必须删除您的 .vs 目录(或其中的一部分),因为它似乎也缓存在那里。

https://developercommunity.visualstudio.com/content/problem/248037/defaultbuildprops-with-langversion-is-not-used-by.html

【讨论】:

  • 这对我有用,但是我将监视我的项目以进行下一次构建。否则我需要应用@SamlAm 的答案
  • 这对我也有用。我有一个新旧样式 csprojs 的解决方案,即使 SDK 样式的 csprojs 工作正常,旧的也没有从 Directory.Build.targets 文件中获取属性。关闭 VS 后,删除 .vs 文件夹并再次加载,它开始按预期工作。
【解决方案3】:

您需要检查您的项目文件是否在文件开头包含下一行

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

没有行导入'魔法'不会发生。因此,您需要将此行插入到所有旧项目中

【讨论】:

    猜你喜欢
    • 2019-05-08
    • 1970-01-01
    • 2017-11-07
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-15
    • 2010-12-17
    相关资源
    最近更新 更多