欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-01-11 19:47:22
VS项目Debug|Release包含排除不同技巧,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>