我有一个.NET 4.0项目(C#)的解决方案,它生成一个延迟签名的dll,我对它进行了模糊处理和签名。引用dll时忽略内部版本号
编辑:这是我如何版本的DLL:
[assembly: AssemblyVersion("0.7.0.*")]
[assembly: AssemblyFileVersion("0.7.0.0")]
我有一个.NET 4.0项目另一种解决方案(C++/CLI)引用签署的dll,并产生一个签名的DLL(实际上,由于a flaw in the C++ build system,延迟签署和签署后发布)。
问题是,对dll的引用包含特定的版本号,甚至包括内部版本号(我想要一个内部版本号)。
每次我构建引用的dll时,我必须更改项目设置文件(.vcxproj),以便它引用新版本的dll。由于我使用源代码管理,这是非常不方便的(不同的计算机可能会有不同的内部版本号,因为每台计算机都构建自己的引用dll - 引用的dll不在源代码管理中)。
如果我不改变的参考,我得到一个警告:
警告MSB3245:无法解析 此引用。无法找到 装配...
而且很多象这样的错误:
错误C3083:“富”:符号到 左侧的“::”必须是一个类型
一旦我改变了引用,这些就解决了。
如何让引用忽略内部版本号甚至整个版本号?
+1。谢谢。我已经编辑了我的问题,包括我编译程序集的方式,并提及它在构建中的缺陷,而不是VS2010中的错误。我希望每个版本都能创建一个新版本,这只能使用[AssemblyVersion]而不是[AssemblyFileVersion]来完成。我不应该在[AssemblyVersion]中使用“*”吗? – brickner 2010-06-04 17:47:43
是的,在[AssemblyVersion]中使用*会导致问题。 – 2010-06-04 17:52:25
谢谢@Hans Passant。顺便说一下,的确,我不必拖延签名。但是如果我不这样做,我会收到警告。警告810100b3:...是强名称签署的程序集,嵌入清单会使签名无效。您需要重新签署此文件以使其成为有效的程序集。 – brickner 2010-06-04 17:54:21