2012-08-09 69 views
0

我在Visual Studio 2012中构建了一个.NET 4应用程序,并希望以该格式对我的.net程序集进行版本化。创建一个没有版本号的.net DLL版本

[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中,它们的版本符合这一点。

回答

1

每个版本的部分必须是范围为0 - 有一个动态的版本字符串65535

一种方法是在声明另一个类公共常量字符串(比如在VersionClass类),并使用该作为AssemblyVersion的版本字符串参数。然后编写一个脚本(使用say powershell)来重新创建版本字符串的任何动态值的VersionClass。将此脚本作为预生成事件运行,并且在每次编译时都会覆盖VersionClass。

更新: 这里是一个工具,可以简化设置版本:http://autobuildversion.codeplex.com/ 我还没有尝试过,但看起来这将处理您想要的场景。

+0

那么我可以问为什么它在我使用6.0时有效。*? – dreza 2012-08-09 23:31:27

+0

它只接受字符串末尾的星号,而不是中间的星号。 – Shameer 2012-08-09 23:50:20

+0

你也可以尝试这个工具:http://autobuildversion.codeplex.com/ – Shameer 2012-08-09 23:53:25