[英]How do I make my own version of a “resx” file in Visual Studio 2013?
[英]How do I make automatic version numbers work in Visual Studio
我被要求在代碼庫中為程序集添加自動編號。 我一直在將版本從默認的1.0.0.0更改為1.0。*像這樣:
[assembly:AssemblyVersion(“1.0。*”)]
它根據我的意願生成一個數字。
但是,代碼庫有數百個DLL,其中很多都是相互引用的。 現在,當我編譯一些項目時,他們抱怨引用組件所需的DLL版本不正確,並且它們不會構建:(
我怎樣才能做到這一點? 我們需要它,以便在編譯代碼庫層次結構底部的DLL時,引用它的所有其他DLL都可以正常工作而無需重新編譯。
我得到的錯誤是這樣的:
Error 1 CA0058 : The referenced assembly 'Library1, Version=1.0.4146.17993
, Culture=neutral, PublicKeyToken=d9c65edd2096ad48' could not be found. This assembly
is required for analysis and was referenced by:
D:\Work\Source Code\Library\Library2\bin\Release\Library2.dll.
版本1.0.4146.17993不正確 - DLL具有更高的值。 DLL被設置為Copy Local,因為我們提供的軟件需要它(不要問為什么)。 在本地復制的DLL是具有更高版本號的DLL,這是我們想要的版本號。
到目前為止,我已經嘗試更改引用以將“特定版本”標志設置為false但這沒有幫助。
使用1.0.*
語法時VS生成的版本號不一定按順序遞增。 文檔有這樣說(強調添加):
您可以指定所有值,也可以使用星號( )接受默認的內部版本號,修訂號或兩者。 例如,[assembly:AssemblyVersion(“2.3.25.1”)]表示2為主要版本,3表示次要版本,25表示構建號,1表示版本號。 諸如[assembly:AssemblyVersion(“1.2。 ”)]之類的版本號指定1作為主要版本,2作為次要版本,並接受默認的構建和修訂號。 諸如[assembly:AssemblyVersion(“1.2.15。*”)]之類的版本號指定1作為主要版本,2作為次要版本,15作為構建號,並接受默認修訂號。 默認內部版本號每天遞增。 默認修訂號是隨機的。
如果您完全正確地進行版本控制至關重要,我強烈建議您使用第三方解決方案。 Build Version Increment加載項非常出色。
您想要做的是自己管理程序集版本。 只有在對程序集的公共接口進行重大更改時才會增加此值。 更改此屬性會使程序集與引用它的其他程序集不兼容,即使您沒有更改代碼中的內容也是如此。 相反,您唯一想要自動遞增的是程序集文件版本。 與程序集版本不同,CLR不會檢查此屬性以確定兼容性。
Build Version Increment加載項為您提供了一種細粒度的控制,可以對增加的內容進行精細控制。 這可能應該包括在VS中。
這實際上是一個非常深入的問題,我希望有人能夠為您詳細解答這個問題,但是在您控制了匯編信息后我的2美分是您應該使用Nuget
來管理您的依賴關系。 這樣,當團隊A發布程序集X的v2時,他們所做的只是將它放在你的Nuget repo(可能是網絡共享)上,然后你基本上可以右鍵單擊<使用DLL的項目中的<update。
我還建議查看http://semver.org/並使用語義版本控制,如果你不想按照這樣的系統(或為你的商店建立一個類似的標准),它甚至可能不值得嘗試版本你的DLL你只會給自己帶來巨大的麻煩。 但是,使用語義版本控制將使您的版本號實際上意味着什么。 而且不只是感覺被標記到當前版本。
請注意,修訂號不是隨機的。 這是構建的時間。 Build是日期編號。
刪除您的引用(在使用它的項目中)並通過指向項目引用類型重新執行它。
PS:如果在添加引用時,選擇瀏覽並指向dll將始終存在的位置,引用將不會被破壞!
> However, the code library has many hundreds of DLLs,
如果您可以將所有源項目及其生成的dll-s具有相同的版本號,則可以將versionnumber放入一個文件中,該文件在共享AssemblyInfo.cs中描述的所有dll之間共享 。 因此,如果存在新的版本/版本,您(或您正在使用的版本號生成器)必須僅更新一個文件。
這不能回答您的原始問題,但可能是依賴問題的簡單工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.