5

我想在我的 MSBuild 脚本中创建一个目标:

  • 从源文件夹获取 SVN 版本/日期时间('svn info' 命令)
  • 从“build”目标生成的 .EXE 和 .DLL 更新 VERSIONINFO 资源

有什么东西可以完成吗?我在重新发明另一个轮子之前问...

我正在查看http://msbuildextensionpack.codeplex.com

4

2 回答 2

5

MSBuild 社区任务项目是您的朋友。检查他们的“SvnInfo”任务。

此外,Daniel Doubrovkine 的ResourceLib是一部出色的作品,在尝试解开 VERSIONINFO 创建混乱时可以避免很多头痛(去过那里,做过......)

于 2009-09-05T03:40:19.680 回答
1

通过编写包含在项目中的 AssemblyInfo 文件(或任何具有程序集属性的文件),在编译之前更容易做到这一点。

在此处找到的在 powershell 中编写此示例的示例:https ://github.com/craigbeck/rhino-esb/blob/master/psake_ext.ps1#L7-46

一个警告——.net 中的版本不仅仅是任何字符串,而是ushorts,这意味着它们的最大值为 65535(请参阅此处的文档)。如果您使用 svn 修订版(就像我们曾经做过的那样),一旦超过该幻数,您的构建就会中断。

为什么要在编译后尝试这样做?

于 2009-09-05T03:58:48.477 回答