什麼是一個好的方法白色標籤的DLL和EXE與Visual Studio?什麼是白色標籤DLL的好方法
從本質上講,我們希望能夠有DLL和EXE變化的基礎,我們的包裝解決方案的客戶,例如在名稱:
代替myCompany.exe和myCompany.db.dll ,我想yourComany.exe和yourComany.db.dll或acme.exe和acme.db.dll等
編輯:
目前我們使用的是直的Visual Studio生成過程與威克斯項目來創建一個msi。
什麼是一個好的方法白色標籤的DLL和EXE與Visual Studio?什麼是白色標籤DLL的好方法
從本質上講,我們希望能夠有DLL和EXE變化的基礎,我們的包裝解決方案的客戶,例如在名稱:
代替myCompany.exe和myCompany.db.dll ,我想yourComany.exe和yourComany.db.dll或acme.exe和acme.db.dll等
編輯:
目前我們使用的是直的Visual Studio生成過程與威克斯項目來創建一個msi。
我不知道有沒有一種好的方法可以做到這一點,而不需要像XYZ公司那樣真正建立項目。你可以嘗試像this這將給你想要的結果,但它會改變大會的物理名稱,以及可能會導致依賴問題。
如果重建它的唯一理由是更改名稱,那麼您可以在第一個地方使用通用的東西嗎?想象一下,必須修補50個相同的DLL,並分別構建/部署每個DLL,因爲它們都必須命名爲不同的東西。即使只有少數客戶,我也不願意保持這一點。版本控制也是一件麻煩事。
如果你必須這樣做,我可能會去build task(它可以執行相當先進的操作)。你提到你是「打包解決方案」;構建任務的可行性取決於它如何被打包。
爲了響應您關於命名EXE與客戶特定名稱的評論......我明顯的建議是讓這些應用程序包含儘可能少的代碼。
我能想到的最簡單的構建集成將創建一個後期構建任務,在發佈模式下成功編譯後運行。然後該任務可以讀取定義唯一名稱的配置文件,並將成功構建的EXE複製到輸出目錄。
一些操作可以通過任務配置文件完成:http://msdn.microsoft.com/en-us/library/ms171466。
或者,您可能希望創建一個小應用程序來爲您完成所有工作,並將配置開關傳遞給它。
例如,下面是一個小的後期構建命令,我會在成功構建Web應用程序時執行縮小我的JavaScript/CSS。的概念是類似的:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe
"$(ProjectDir)Properties\build\minify.xml"
/p:SourceLocation="$(ProjectDir)client"
/p:CssOutputFile="$(ProjectDir)client\final\final-full.css"
/p:JavaScriptOutputDirectory="$(ProjectDir)client\final"
你在通用命名上做了一個好點,但至少必須命名exe(並且有幾個)。你有沒有一個如何做到這一點的構建任務的例子? – 2012-08-10 02:08:22
目前我們使用一個直觀的視覺工作室構建過程與一個wix項目來創建一個msi。 – 2012-08-10 02:11:49
查看我更新的答案。您可以創建一個自定義應用程序在發佈版本中執行。該應用可能需要執行後續步驟(如更改Wix配置)爲每個步驟創建唯一的MSI。 – 2012-08-10 02:20:38
你可以在你想在所有的輸出組件(DLL和EXE)任何後期生成過程中使用ILMerge,創建一次性客戶品牌構建。
ilmerge /out:CustomerName.exe internalName.dll internalName.exe
你能解釋你的意思是「白色標籤」的DLL或可執行文件? – 2012-08-10 01:51:03
更新的問題,以澄清 – 2012-08-10 02:01:52
我認爲你要求這樣的要求麻煩。爲什麼這是必要的? – Bernard 2012-08-10 02:16:17