使用Visual Studio 2017构建解决方案时,为什么Directory.Build.props不起作用?

Sam*_*IAm 2 msbuild visual-studio

我有一个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>
Run Code Online (Sandbox Code Playgroud)

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

Visual Studio 2017如何构建和使用Directory.Build.props而不是MSbuild有什么不同?

cs-*_*NET 12

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

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

  • 这对我有用,但是我将监控我的项目以进行下一个构建。否则我需要应用@SamlAm 的答案 (2认同)

Sam*_*IAm 10

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

  • 这听起来像是一个错误。 (3认同)
  • 清理 .vs 文件夹也为我纠正了这个问题 (2认同)

小智 6

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

<?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')" />
Run Code Online (Sandbox Code Playgroud)

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