web站点和windows服务项目发布时如何排除指定文件
在发布asp.net站点和windows服务项目时,有的时候这样的需求:msbuild编译之后发布到服务器指定目录时要排除指定文件,比如通过jenkins构建时,不希望覆盖原来的Web.config和App.config,那么该如何排除呢?
web站点项目
比如不希望发布Web.config文件,有以下三种方法。
1,将项Content改为None
修改前:
<Content Include="Web.config" />
修改后:
<None Include="Web.config" />
2,使用项的Exclude属性
如下代码:
<Content Include="Web.config" Exclude="Web.config" />
注意:
这种方式虽然可以实现发布时排除,但是同时也从项目中排除了,对于本地开发调试不方便。

3,使用Target和ExcludeFromPackageFiles
添加新的Target节点,如下代码:

<!--通过ExcludeFromPackageFiles排除Web.config-->
<Target Name="CustomExcludeFiles" BeforeTargets="ExcludeFilesFromPackage">
<ItemGroup>
<ExcludeFromPackageFiles Include="Web.config"></ExcludeFromPackageFiles>
</ItemGroup>
</Target>
总结:最佳实践是使用方法3,既可以实现发布时排除,又能保证文件存在于项目中,不影响本地开发和调试。
另外:
由于msbuild基于.csproj项目文件,所以以上操作都是修改.csproj文件,修改方法如下:
1,卸载项目
如下图:

2,编辑csproj文件
如下图:

windows服务项目
由于在windows服务项目中,App.config本来就是None类型的,且使用Target和ExcludeFromPackageFiles的方式不适用,所以暂时使用项的Exclude属性实现。
修改前:
<None Include="App.config" />
修改后:
<None Include="App.config" Exclude="App.config" />
参考资料
1,https://stackoverflow.com/questions/6358635/exclude-files-from-web-site-deployment-with-msbuild
2,msbuild参考:https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild
web站点和windows服务项目发布时如何排除指定文件的更多相关文章
- 使用Jenkins自动发布Windows服务项目
不同于发布Web项目,自动发布Windows服务项目需要解决以下几个问题: 如何远程停止和开启服务?需要在发布前停止服务,在发布完成后开启服务. 如何上传编译文件到目标服务器? 问题1:如何远程停止和 ...
- VS2013开发Windows服务项目
这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务 ...
- Windows服务项目打包成安装包(Windows服务)-----------VS2017项目程序打包成.msi或者.exe
VS2017项目程序打包成.msi或者.exe Windows服务项目使用VS2017项目程序打包成.msi或者.exe安装包 项目打包成安装包(Windows服务) 1.安装打包插件:Microso ...
- HTML input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
html input="file" 浏览时只显示指定文件类型 xls.xlsx.csv <input id="fileSelect" type=" ...
- <input type="file" />浏览时只显示指定文件类型
<input type="file" />浏览时只显示指定文件类型 <input type="file" accept="appli ...
- VISUAL STUDIO 2008 WINDOWS FORM项目发布生成安装包详解(转)
转自:http://www.cnblogs.com/killerofyang/archive/2012/05/31/2529193.html Visual Studio 2008 Windows Fo ...
- 使用C#创建Windows服务 并发布Windows 服务
一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.创建Windows Servic ...
- C#创建windows服务并发布
创建window 服务 新建一个window 服务项目MyService,如下图 切换到代码视图修改. using System; using System.Collections.Generic; ...
- logserver 日志服务项目发布
logserver是使用logback.light-4j.commons-exec等构建的简单日志服务,参考项目logbackserver和light4j,支持跟踪日志.分页查看.搜索定位.下载文件等 ...
随机推荐
- vs2012升级vs2017后的一些坑
异常信息:未能加载文件或程序集"System.Web.Helpers... 未能加载文件或程序集"System.Web.Helpers, Version=2.0.0.0, Cult ...
- Kali学习笔记10:端口扫描详解(下)
上一篇先是介绍了UDP的端口扫描,又谈了TCP的不完全连接端口扫描 https://www.cnblogs.com/xuyiqing/p/9389276.html 接下来我们看看TCP的全连接端口扫描 ...
- 【PHP篇】字符串基础
1.声明时既可以用双引号也可以用单引号 str1 =”字符串值”; //可解析引号里的变量等内容 str2=’字符串值’; //不可解析内容 2.字符串没有长度限制,但要注意内存的消耗 ...
- MYSQL服务器系统变量
一:查看服务所有变量 MySQL服务器维护许多配置其操作的系统变量.每个系统变量都有一个默认值.可以使用命令行或选项文件中的选项在服务器启动时设置系统变量.其中大多数都可以在运行时使用动态更改 SET ...
- 【hadoop】1、MapReduce进行日志分析,并排序统计结果
1.网上很多关于搭建Hadoop集群的知识,这里不多做叙述,并且本机运行Hadoop程序是不需要hdfs集群的,我们本机运行只做个demo样式,当真的需要运行大数据的时候,才需要真正的集群 2.还有就 ...
- Storm WordCount
特别注意,在本地运行的时候应该去掉<scope>provided</scope>,否则会报java.lang.ClassNotFoundException: org.apach ...
- (转载)CPU、内存、硬盘、指令以及他们之间的关系
CPU.内存.硬盘.指令以及他们之间的关系 最近读完<程序是怎样跑起来的>以及<深入理解计算机系统>的3.6.9章节后对计算机的组成有了更深入细致的了解,现总结一下对CPU.内 ...
- 谷歌浏览器中安装Axure扩展程序
当使用谷歌浏览器预览Axure原型文件的时候,首次打开会出现以下界面: 我们按照图片中的步骤来即可,不过前提条件是翻.墙[我使用的是蓝灯,下载地址:https://github.com/getlant ...
- 大数据入门基础系列之Hadoop1.X、Hadoop2.X和Hadoop3.X的多维度区别详解(博主推荐)
不多说,直接上干货! 在前面的博文里,我已经介绍了 大数据入门基础系列之Linux操作系统简介与选择 大数据入门基础系列之虚拟机的下载.安装详解 大数据入门基础系列之Linux的安装详解 大数据入门基 ...
- MODIS数据的下载(新地址)
Modis数据下载方法 1.1打开网址 浏览器输入地址:https://ladsweb.nascom.nasa.gov/search 注:需要一定的等待时间,如果一直打不开,就需要FQ.(网址加载了g ...