2016-02-23 68 views
0

我有一個需要在普通構建環境之外構建的DLL,但是文件版本需要與那些內部版本相匹配。這是什麼標籤?我試過<version>,<fileversion><productversion>無濟於事。如何從環境變量設置DLL的文件版本?

+1

未指定項目文件。改爲編輯AssemblyInfo.cs。 –

+0

我需要從構建環境變量中設置值;它不能在.cs文件中硬編碼。 – Benjin

+1

這種嘗試用複雜的非標準解決方案解決非常簡單的問題的負擔,你永遠無法得到任何幫助。每個人都使用分佈式源代碼控制。 –

回答

1

我不知道你爲什麼需要這樣做,但如果你有能力提供一些腳本作爲構建的一部分,這可能是可能的(這似乎是這種情況,如果你可以將版本加載到可用於.DLL構建的環境變量,與正常的構建環境分開)。

根據AssemblyInfo.no​​version創建AssemblyInfo.cs的保存副本,但不包含其中的版本信息。

然後,在構建DLL之前,但在設置環境變量之後,使用命令腳本或Powershell腳本甚至簡單的C#命令行實用工具將AssemblyInfo.no​​version複製到現有的AssemblyInfo.cs中,然後正確格式的版本信息標籤附加到它:

[assembly: AssemblyVersion("<version-goes-here>")] 
[assembly: AssemblyFileVersion("<version-goes-here>")] 

即完成之後,繼續.DLL版本。這可以作爲構建本身的一部分來完成(例如在Visual Studio中使用預構建事件),也可以作爲手動先決條件步驟,具體取決於構建DLL的方式。

這當然是一種粗糙的方式來完成你似乎要問的東西;但是,如果您無法使用任何可以爲您處理版本控制的構建管理軟件,則應該允許您按照您的要求進行操作。