Visual Studio项目的生成事件代码

我们打开vs的项目属性可以看到有生成事件,如下图:

可以看到有两块空白区域,这个空白区域可以让我们写代码或脚本来处理编译生成前后的时候,处理一些事情,今天就简单的来说说这两块。

生成前事件命令行

我想可以在这里动态生成程序的版本号,将时间增量(DateTime)信息添加到AssemblyFileVersion属性中,该属性具有不破坏任何依赖性的优点。

你可以使用预生成事件生成文件,那是在项目的预生成,事件中:

echo [assembly:System.Reflection.AssemblyFileVersion("%date:~0,4%.%date:~5,2%%date:~8,2%.%time:~0,2%%time:~3,2%.%time:~6,2%")] > $(ProjectDir)Properties\VersionInfo.cs


将生成的VersionInfo.cs文件(Properties子文件夹)包含到项目中,并且AssemblyInfo.cs文件中的AssemblyFileVersion代码注释掉,每次编译的时候就是当前时间作为版本号了。

 

后期生成事件命令行

我想让程序生成的类库输出到指定的目录下,方便供其他程序引用和访问,保证其他程序引用到的都是最新的类库程序。

set outPath=$(SolutionDir)$(ProjectName).Output
if exist  "%outPath%" rd /s /q "%outPath%"
md "%outPath%"
copy $(TargetDir) "%outPath%"

以上代码直接在项目的同级目录生成以项目名+.Output的文件夹,并把bin中的dll复制到里面。

好了,试试吧,看看是否有版本号和输出到指定目录下?

posted on   jack_Meng  阅读(2108)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2017-09-05 细说业务逻辑 -- 丢失的业务逻辑层

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩