工程文件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>