如何从环境变量设置DLL的文件版本?

时间:2016-02-23 19:12:23

标签: c#

我有一个需要在正常构建环境之外构建的DLL,但文件版本需要与那些内部版本匹配。这需要什么标签?我已尝试<version><fileversion><productversion>无效。

1 个答案:

答案 0 :(得分:0)

我不知道你为什么需要这样做,但如果你能够提供一些脚本作为构建的一部分,这可能是可能的(如果你可以将版本加载到一个可用于.DLL构建的环境变量,与正常构建环境分开。)

创建AssemblyInfo.cs的保存副本,根本不包含版本信息,将其称为AssemblyInfo.no​​version。

然后,在构建DLL之前但在设置环境变量之后,使用命令脚本或Powershell脚本甚至简单的C#命令行实用程序将AssemblyInfo.no​​version复制到现有的AssemblyInfo.cs上,然后追加格式正确的版本信息标签:

[assembly: AssemblyVersion("<version-goes-here>")]
[assembly: AssemblyFileVersion("<version-goes-here>")]

完成后,继续.DLL构建。这可以作为构建本身的一部分(例如,在Visual Studio中使用预构建事件)或作为手动先决条件步骤完成,具体取决于您构建DLL的方式。

这无疑是一种粗暴的方式来实现你似乎要求的东西;但是,如果您无法使用任何可以为您处理版本控制的构建管理软件,那么您应该可以按照自己的要求进行操作。