一个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. 【C语言】控制台窗口图形界面编程(二)窗口信息和填充缓冲区

    目录 00. 目录 01. COORD结构体 02. SMALL_RECT结构 03. CONSOLE_SCREEN_BUFFER_INFO结构体 04. GetConsoleScreenBuffer ...

  2. [Python3网络爬虫开发实战] 3.2.2-高级用法

    在前一节中,我们了解了requests的基本用法,如基本的GET.POST请求以及Response对象.本节中,我们再来了解下requests的一些高级用法,如文件上传.cookie设置.代理设置等. ...

  3. [Python3网络爬虫开发实战] 2.5-代理的基本原理

    我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden,这时候打开网页一看,可能会看到“您的 ...

  4. python 开发搭建目录规范

    软件目录结构规范有什么好处: 通过规范化,能够更好的控制软件结构,让程序具有更高的可读性. 项目目录组织结构如下: Foo/ # 项目名 --bin/ # 可执行文件目录 --foo # 可执行程序 ...

  5. PCB中贴片元器件的引脚规范(allegro)

    表贴的芯片一个引脚焊盘的宽度: 当芯片引脚间的间距>=26mil时,计算公式是(脚宽度+8mil) 当芯片引脚的间距<26mil时,计算公式是(引脚间距/2+1) 表贴的芯片一个引脚焊盘的 ...

  6. c#读取MySQL数据表中的内容

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. 九度oj 题目1077:最大序列和

    题目1077:最大序列和 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6435 解决:1931 题目描述: 给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T ...

  8. 动态规划之最长递增子序列(LIS)

           在一个已知的序列{ a1,a2,……am}中,取出若干数组成新的序列{ ai1, ai2,…… aim},其中下标 i1,i2, ……im保持递增,即新数列中的各个数之间依旧保持原数列中 ...

  9. Spring boot 搭配 JPA 生成表注释 和 字段注释

    原文地址:https://blog.csdn.net/qq_39996837/article/details/84717748 由于在数据库表反向生成过程中呢,需要通过jpa自动生成表,并且这个表必须 ...

  10. 新装mvn建第一个项目报错org.apache.maven.plugins:maven-resources-plugin:2.6

    1.第一次创建mvn项目会报maven-resources-plugin-2.6.jar错,原因是mvn无法自动下载这个jar包,多次删除这个目录下的C:\Users\Administrator\.m ...