我有一個.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