使用 MSBuild 更新版本信息(二进制文件编译后)
-
21-09-2019 - |
题
我想在我的 MSBuild 脚本中创建一个目标:
- 从源文件夹中获取 SVN 修订版/日期时间(“svn info”命令)
- 从“build”目标生成的 .EXE 和 .DLL 更新 VERSIONINFO 资源
有什么东西可以完成这个任务吗?我在重新发明另一个轮子之前问...
解决方案
MSBuild 社区任务项目 是你的朋友。检查他们的“SvnInfo”任务。
此外,丹尼尔·杜布罗夫金 (Daniel Doubrovkine) 资源库 是一项出色的工作,可以避免您在尝试解决 VERSIONINFO 创建混乱时遇到的很多麻烦(去过那里,做过那件事......)
其他提示
通过编写项目中包含的 AssemblyInfo 文件(或任何具有程序集属性的文件),在编译之前可以更轻松地完成此操作。
在 powershell 中编写此示例可在此处找到: https://github.com/craigbeck/rhino-esb/blob/master/psake_ext.ps1#L7-46
需要注意的是 .net 中的版本不仅仅是任何字符串,而是 ushort
s 这意味着它们的最大值为 65535 (请参阅文档 这里)。如果您使用 svn 修订版(正如我们在某一时刻所做的那样),一旦超过该幻数,您的构建就会中断。
为什么编译后要尝试这样做?
不隶属于 StackOverflow