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

原文地址:https://www.cnblogs.com/huangsheng/p/10612698.html

时间: 2024-10-01 10:25:14

工程文件csproj使用编译条件指定属性的相关文章

自动生成版本信息,重新编译指定文件,一键编译IAR工程同时生成hex,bin,out文件

平台:IAR + windows_bat 1.自动生成版本信息 目的: 脚本自动更新程序svn对应的的版本号 前提: svn需要安装command line (参考 https://jingyan.baidu.com/article/a3a3f8113f89198da2eb8aed.html) 主要技术点: 具体.bat脚本主要来源于网络,文件放置在agv_dev_platform->User目录下,编译脚本将生成svnversion.h文件,文件内容仅是SVN_REVISION的一个宏,最终程

ASP工程文件(csproj)解读

https://blog.csdn.net/austin_link/article/details/40596185 C#项目中都会有一个不起眼的文件,后缀名csproj,很多人都会忽视它.其实,这个文件在项目中起到举足轻重的地位.这个文件其实是一个项目的工程文件,不过,正常开发中,这个文件基本上不会需要考虑到.这时候,你应该会问这个文件作用,其实,这个文件记录了与工程有关的相关信息,例如包含的文件,程序的版本,所生成的文件的类型和位置的信息等. 这个文件其实是给编译工具看的,这个文件记录了这个

VS2008 工程中部分文件不参与编译 从生成中排除【Worldsing笔记】

Visual Studio 2008 .VS2008.VC2008工程源文件配置.编译配置 ? 有时编写代码时,往往存在这样的需求(或是希望有这样的功能):一个工程经过不共同的配置实现不同的版本或是功能,比如做开发包的Dome,一个库文件, 有多个API接口,以lib文件给用户提供时,我们需要提供文档和Demo,你可以一个Demo建立一个工程,但是,像VS2008这样的高级开发工具应该有解决 办法的,关键是你不知道怎么用,在VS2008环境下有这样几种解决办法: ? 建立一个工作区,在工作区里建

linux下使用eclipse打开esp32工程文件,并进行编译下载。

在之前的文章中,已经讲过将esp-idf 运用linux自带的工具下载,但是为了开发的系统性,这里运用eclipse来对idf进行整体的编译. 首先 cd /esp32 运行eclipse,将workspace选定在/home/li/esp32/workspace/hello_world下 使用指令 cd /esp32/esp-idf/examples/get-started/hello_world/ 和指令 cp -r hello_world /home/li/esp32/workspace/

批处理向FTP上传指定属性的文件 批处理增量备份的例子

使用windows批处理向FTP上传具有指定属性的文件,类似增量备份功能. 对一个目录里的几个文件自动上传FTP时只上传有归档属性的文件,然后FTP上传成功后自动清除(本机)刚上传文件的归档属性. 类似于对文件增量备份的功能. @echo off rem 指定FTP用户名 set ftpUser=FTPUSERNAME rem 指定FTP密码 set ftpPass=FTPPASSWORD rem 指定FTP服务器地址 set ftpIP=192.168.0.2 设置待上传的本地文件夹目录 se

配置工程文件dll编译后copy路径

放到工程文件的最后面的配置节点: 下面的配置节点中生成路径换成实际的相对路径就可以了 修改:Prject.csproj 文件里面的配置节点  project配置节点里面的最后面 <Target Name="AfterBuild"> <Copy SourceFiles="$(TargetDir)$(TargetFileName);$(TargetDir)$(TargetName).pdb;" DestinationFolder="生成路径&

ldap过滤器条件与查找指定属性

public LDAPSearchResults searchLDAPSearchResults(String basedn) {   LDAPSearchConstraintsObject();   try {    if (LdapConf.log.equals("yes")) {     log.info("开始获取数据..");    }    ldapRsults = lc.search(basedn, LDAPConnection.SCOPE_SUB,

基于Centos7编译spark指定Hadoop版本

基于Centos7编译spark指定Hadoop版本 0 摘要 主要探究了如何对spark源码进行编译,以及普及了一下Maven中的-P,-D的意义以及我在编译过程中遇到的两个坑.为什么需要编译spark源码呢?官网已经提供了预编译的版本了啊,但是如果你对spark源码进行了修改或者spark提供了相对应的hadoop版本不能满足要求,本人编译是因为需要CDH版本的spark,综上所述,最佳实践是对spark源码进行编译. 1 编译前准备 本次选择的版本是spark2.2.0,需要准备spark

【转】全面解析Unity3D自动生成的脚本工程文件

http://blog.csdn.net/jjiss318/article/details/7632041 我们在Unity3D开发的时候,经常会看到它会产生不少固定命名工程文件,诸如: Assembly-CSharp-vs.csproj Assembly-CSharp-firstpass-vs.csproj Assembly-CSharp-Editor-vs.csproj Assembly-CSharp-Editor-firstpass-vs.csproj 看得不少人云里雾里的.那么,这些工程