一个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. PHP 下基于 php-amqp 扩展的 RabbitMQ 简单用例 (三) -- Header Exchange

    此模式下,消息的routing key 和队列的 routing key 会被完全忽略,而是在交换机推送消息和队列绑定交换机时, 分别为消息和队列设置 headers 属性, 通过匹配消息和队列的 h ...

  2. python send email

    #!/usr/bin/python # -*- coding: UTF-8 -*- # coding:utf8 from smtplib import SMTP_SSL from email.head ...

  3. jq ajax请求error: Maximum call stack size exceeded

    原因是data中参数iconUrl这个变量未声明导致的.jq在内部循环时报错

  4. PDO、PDOStatement、PDOException

    最近在学PDO  比较详细的资料 出处:http://blog.csdn.net/hsst027/article/details/23682003 PDO中包含三个预定义的类,它们分别是PDO.PDO ...

  5. python爬取百度文库所有内容

    转载自 GitHub 的 Jack-Cherish 大神 基本环境配置 版本:python3 系统:Windows 相关模块: import requests import re import jso ...

  6. 怎样判断有没有SQL注入?

    最为经典的单引号判断法: 在参数后面加上单引号,比如: http://xxx/abc.php?id=1' 如果页面返回错误,则存在 Sql 注入. 原因是无论字符型还是整型都会因为单引号个数不匹配而报 ...

  7. hdu 1251简单字典树

    #include<stdio.h> #include<iostream> #include<string.h> using namespace std; struc ...

  8. android中后一个activity传值给前一个activity的实现

    前一个activity跳转到后一个activity设置code: Intent intent=new Intent(MainActivity.this,ActivityTwo.class); star ...

  9. poj——1470 Closest Common Ancestors

    Closest Common Ancestors Time Limit: 2000MS   Memory Limit: 10000K Total Submissions: 20804   Accept ...

  10. MongoDB小结21 - find【游标】

    数据库使用游标来控制find的执行结果. 客户端对游标的实现通常能够对最终结果进行有效控制. 可以限制结果的数量,略过部分结果,对任意方向任意键的组合对结果进行排序,或者去执行一些功能强大的操作. 我 ...