如何获得Visual Studio的“发布”功能,包括后生成事件文件

 我来答
宽法恋4439
2017-03-24 · TA获得超过163个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:266万
展开全部
很多时候会想在vs编译的时候自定义一些事情或者动作,

例如:

拷贝生成的文件到特定的目录。

部署程序到测试目录或者环境,例如注册到windows服务,更新GAC等。

根据编译环境生成特定的配置文件(例如web.config) PS: 身在一个复杂环境, 这是我最想要的功能。

自动执行外部exe。

同步DLL和其他资源文件。

1.最简单的自然是用Visual Studio自带的编译事件,这东西使用方便,又是Visual Studio自带的功能,就是功能弱了一点(好吧 其实是很弱)

将项目生成的DLL文件拷贝到特定目录,(如果你想拷贝一整个文件夹 用xcopy; 当然,熟悉命令行的人可以弄出更多的玩法)

如下图所示

2.另外一种比较推荐的方式是自定义编译扩展(可以执行C#代码...功能强大多了), 看下面这个项目文件的最后几句 (项目文件就是 项目名.csproj)

<Import Project="..\..\Build\Tasks\Build.tasks" />
<Target Name="BeforeBuild">
<Message Text="Start Automatic Generate Configuration File, Source File: $(ProjectDir)web.config" Importance="high">
</Message>
<ConfigurationEnvironmentTask TemplateFile="$(ProjectDir)web.template.config" TargetFile="$(ProjectDir)web.config" DataSource="$(EnvironmentName).config" />
</Target>
</Project>
这几句话的意思是

1. 包含一个task文件 (该文件包含了ConfigurationEnvironmentTask 的定义,这是一个自定开发的类,其主要作用是根据环境生成web.config文件)

2.输出一行提示信息 Start Automatic..... (该信息将显示在Output Window)

3. 调用ConfigurationEnvironmentTask 并传入一些参数(TemplateFile 等都是自己定义的参数)

Build.tasks的文件内容其实很简单,主要就是说明了这个task定义在哪里 (Build.dll)

<?xml version="1.0" encoding="utf-8"?>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式