一个C#项目,如果为同一个解决方案的其他项目所引用,则其编译后,会将DLL拷贝到引用项目中;但如果它并不被其他项目引用,但又想编译后能够自动将生成的东西拷贝过去,可以在项目的生成事件中,写上一些批处理命令,拷贝指定的内容。

项目的生成事件,可以右击项目,弹出菜单中选属性,即可见到。

下面是一个批处理示例:

SET Area=Test
SET SolutionDir=D:\svn\trunk\Code\Solution\
SET ProjectName=SubWeb set PluginDirectory="%SolutionDir%Web\Plugins\%Area%\"
set PluginViewDirectory="%SolutionDir%Web\Plugins\%Area%\Views"
set PluginBinDirectory="%SolutionDir%Web\Plugins\%Area%\bin"
set PluginContentDirectory="%SolutionDir%Web\Plugins\%Area%\Content"
set PluginScirptsDirectory="%SolutionDir%Web\Plugins\%Area%\Scripts"
set PluginWebConfig="%SolutionDir%Web\Plugins\%Area%\"
set PluginTemplateDirectory="%SolutionDir%Web\Plugins\%Area%\Template"
set PluginFunctionXmlFile="%SolutionDir%Web\Plugins\%Area%\" set ProjectViewDirectory="%SolutionDir%%ProjectName%\Views"
set ProjectBinDirectory="%SolutionDir%%ProjectName%\bin"
set ProjectContentDirectory="%SolutionDir%%ProjectName%\Content"
set ProjectScirptsDirectory="%SolutionDir%%ProjectName%\Scripts"
set ProjectWebConfig="%SolutionDir%%ProjectName%\Web.config"
set ProjectTemplateDirectory="%SolutionDir%%ProjectName%\Template"
set ProjectFunctionXmlFile="%SolutionDir%%ProjectName%\menu.xml" C:\Windows\System32\xcopy.exe /s /y %ProjectViewDirectory%\*.cshtml %PluginViewDirectory% rem C:\Windows\System32\xcopy.exe /s /y %ProjectBinDirectory% %PluginBinDirectory% rem C:\Windows\System32\xcopy.exe /s /y %ProjectScirptsDirectory% %PluginScirptsDirectory% rem C:\Windows\System32\xcopy.exe /s /y %ProjectWebConfig% %PluginWebConfig% rem C:\Windows\System32\xcopy.exe /s /y %ProjectTemplateDirectory% %PluginTemplateDirectory% rem C:\Windows\System32\xcopy.exe /s /y %ProjectFunctionXmlFile% %PluginFunctionXmlFile%

这样,每次这个项目编译的时候,之后就会触发这个事件。

我们也可以将这些批处理命令写到一个批处理文件,然后在VS里添加一个指向该BAT的外部命令。这样在VS里就可以随时点击触发,方便得很。

这种方法尤其适合只拷贝一些非DLL等无须编译的文件。

添加外部命令的方法是在VS中,工具-外部工具,编辑好后,命令会自动出现在工具菜单中。

版权声明:本文为博主原屙文章,喜欢你就担走。

C#项目的生成事件及批处理文件的更多相关文章

  1. 项目属性-->生成事件-->后期生成事件命令行

    以开源记牌器https://github.com/Epix37/Hearthstone-Deck-Tracker 为例,Hearthstone Deck Tracker项目中的后期生成事件命令行: i ...

  2. Visual Studio项目的生成事件代码

    我们打开vs的项目属性可以看到有生成事件,如下图: 可以看到有两块空白区域,这个空白区域可以让我们写代码或脚本来处理编译生成前后的时候,处理一些事情,今天就简单的来说说这两块. 生成前事件命令行 我想 ...

  3. c#项目后期生成事件命令行常用命令

    1.   xcopy (复制文件) xcopy参数介绍 命令格式:XCOPY source [destination] 一堆可选的参数 参数介绍 source 指定要复制的文件. destinatio ...

  4. 磨刀不误砍柴工——VS生成事件

    如果说磨刀不误砍柴工,同样用好Visual Studio,会大大增加咱.NET程序猿效率.本文说的就是Visual Studio中的生成事件,在解决方案下右击某个项目然后选择 “属性” 打开窗口后即可 ...

  5. Visual Studio 生成事件命令

    Visual Studio在生成项目工程前后,有时我们需要做一些特殊的操作,比如:拷贝生成的dll到指定目标下面等. 结合VS可以添加预先生成事件和后期生成事件,采用命令或bat批处理. 1.Visu ...

  6. VS 生成事件

    转载自: http://hi.baidu.com/gisince/item/7f0439ee610c94255a2d64b4 今天写了生成事件的处理,如下: 从网上Down了一个例子,运行时提示错误 ...

  7. VS生成事件

    源自:http://www.cnblogs.com/FreeDong/p/3406737.html 如果说磨刀不误砍柴工,同样用好Visual Studio,会大大增加咱.NET程序猿效率.本文说的就 ...

  8. Visual studio中后期生成事件命令使用

    在做项目是总要把发布后的一些dll拷贝的根网站的bin目录下,为了避免每次都需要手动拷贝可以在 项目的生成事件中写入bat命令,下面的命令只在项目使用的发布配置时执行拷贝, (在生成->配置管理 ...

  9. C# “预先生成事件命令行”和“后期生成事件命令行”

    概述 Visual studio 项目允许在项目属性生成事件一栏中指定预先生成和后期生成事件来实现项目生成与部署的自动化. 实例1: 我自己写了一个调试工具,该工具处于一边开发一边使用过程中.实际工作 ...

随机推荐

  1. 笔试算法题(16):二叉树深度计算 & 字符串全排列

    出题:要求判断二元树的深度(最长根节点到叶节点的路径): 分析:二元递归不容易使用循环实现 解题: struct Node { int value; Node *left; Node *right; ...

  2. MyBatis 实现分页功能

    MySQL 的分页功能是基于内存的分页(即查出来所有记录,再按起始位置和页面容量取出结果). 案例:①根据用户名(支持模糊查询).用户角色 id 查询用户列表(即根据用户名称或根据用户角色 id 又或 ...

  3. python各种推导式分析

    推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...

  4. LINUX系统---初级相关操作和知识

    LINUX系统的初级,从安装LINUX开始,到处理简单的运维问题.搭建各种服务.解决网路问题.缓解服务器压力,写简单的shell脚本. 我们从基本的入门开始搞事情: 安装LINUX系统 对磁盘的使用 ...

  5. 将文件大小kb转换成M

    得到文件的大小的一般是直接到得到的是文件的字节大小,也就是kb,我们有的时候需要做单位换算成B或者M, 下面方法只是换成M,没有到G, 有更好的方法,请随时沟通,以便交流学习,谢谢. public s ...

  6. PHP读取mysql中的数据

    <!DOCTYPE HTML> <html> <head> <title> PHP动态读取mysql中的数据 </title> <me ...

  7. 58. Spring Boot国际化(i18n)【从零开始学Spring Boot】

    国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式.它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换言之,应用程序的功能和代码设计考虑在不 ...

  8. table 设置自动宽度后 td 的固定宽度 在 谷歌浏览器自动拉伸

    table   设置自动宽度后   td 的固定宽度  在 谷歌浏览器自动拉伸 解决方案 <table style="table-layout:fixed;">

  9. [HDU1576] A/B(扩展欧几里得)

    传送门 n = A % 9973 -> n = A - A / 9973 * 9973 设 x = A / B(题目所述,B|A) -> A = B * x 所以 B * x - A / ...

  10. stl lower_bound()返回值

    http://blog.csdn.net/niushuai666/article/details/6734403 函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回 ...