工程文件csproj使用编译条件指定属性

Posted huangsheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工程文件csproj使用编译条件指定属性相关的知识,希望对你有一定的参考价值。

csproj工程文件中有很多xml格式的属性,比如PropertyGroup、ItemGroup,某些属性操作默认是全部的或者是当前编译条件的而已,当我们想指定某些属性只在某个编译条件下发生时就可以通过以下xml属性来指定:

Condition="‘$(Configuration)|$(Platform)‘==‘Debug|AnyCPU‘" 或者 Condition=" ‘$(Configuration)‘ == ‘Debug‘ "

例如,Release和Debug都附带有xml注释文档,则这样解决:

  <PropertyGroup Condition="‘$(Configuration)|$(Platform)‘==‘Release|AnyCPU‘">
    <DocumentationFile>bin\Release\netstandard2.0\XXXX.xml</DocumentationFile>
  </PropertyGroup>

  <PropertyGroup Condition="‘$(Configuration)|$(Platform)‘==‘Debug|AnyCPU‘">
    <DocumentationFile>bin\Debug\netstandard2.0\XXXX.xml</DocumentationFile>
  </PropertyGroup>

再例如,你Debug运行需要包含项目文件,即“复制到输出目录”为“如果较新则复制”/“始终复制”,但是Release或发布到生产环境时又不希望包含进去(不包含狗血、乌龙的迭代事件就少了),可以这样做:

<ItemGroup Condition="‘$(Configuration)|$(Platform)‘==‘Debug|AnyCPU‘">
    <None Update="Assets\Xxxx.key">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
</ItemGroup>

 

以上是关于工程文件csproj使用编译条件指定属性的主要内容,如果未能解决你的问题,请参考以下文章

根据条件编译符号更改exe的名称

git .gitignore详解

Visual Studio中根据系统区分引用64位32位DLL动态库文件的配置方法

c# *.csproj文件里的UseVSHostingProcess在VS2005的哪里设置?

如何有条件地将 C 代码片段编译到我的 Perl 模块?

新建工程—库函数版