我正在Visual Studio 2012中构建一个.NET 4应用程序,并希望以这种格式对我的.net程序集进行版本化。
[assembly: AssemblyInformationalVersion("6.0.1")]
[assembly: AssemblyVersion("6.0.*.0")]
但是我在构建时遇到错误:
Properties\AssemblyInfo.cs(40,12): error CS0647: Error emitting 'System.Reflection.AssemblyVersionAttribute' attribute -- 'The version specified '6.0.*.0' is invalid'
这甚至可能吗?我注意到在一些Microsoft DLL中他们的版本控制与此一致。
答案 0 :(得分:1)
每个版本部件必须在0 - 65535范围内。
拥有动态版本字符串的一种方法是在另一个类(比如VersionClass类)中声明一个公共const字符串,并将其用作AssemblyVersion的版本字符串参数。然后编写一个脚本(使用说powershell)来重新创建具有版本字符串的任何动态值的VersionClass。将此脚本作为预构建事件运行,并在每次编译时覆盖VersionClass。
更新: 这是一个简化版本设置的工具:http://autobuildversion.codeplex.com/ 我还没有尝试过,但看起来这样可以处理你想要的场景。