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

时间:2018-10-18 03:56:44

标签: visual-studio msbuild

我有一个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中使用“生成->重建解决方案”任务不会生成XML文件。

Visual Studio 2017在构建和使用Directory.Build.props而非MSbuild方面是否有所不同?

3 个答案:

答案 0 :(得分:8)

我已经添加了directory.build.props作为解决方案。这某种程度上阻止了Visual Studio在构建过程中进行拾取和使用。将其作为解决方案删除后,效果很好。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

<?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')" />

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