2012-08-10 50 views
4

什麼是一個好的方法白色標籤的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。

+4

你能解釋你的意思是「白色標籤」的DLL或可執行文件? – 2012-08-10 01:51:03

+0

更新的問題,以澄清 – 2012-08-10 02:01:52

+0

我認爲你要求這樣的要求麻煩。爲什麼這是必要的? – Bernard 2012-08-10 02:16:17

回答

0

我不知道有沒有一種好的方法可以做到這一點,而不需要像XYZ公司那樣真正建立項目。你可以嘗試像this這將給你想要的結果,但它會改變大會的物理名稱,以及可能會導致依賴問題。

3

如果重建它的唯一理由是更改名稱,那麼您可以在第一個地方使用通用的東西嗎?想象一下,必須修補50個相同的DLL,並分別構建/部署每個DLL,因爲它們都必須命名爲不同的東西。即使只有少數客戶,我也不願意保持這一點。版本控制也是一件麻煩事。

如果你必須這樣做,我可能會去build task(它可以執行相當先進的操作)。你提到你是「打包解決方案」;構建任務的可行性取決於它如何被打包。

爲了響應您關於命名EXE與客戶特定名稱的評論......我明顯的建議是讓這些應用程序包含儘可能少的代碼。

我能想到的最簡單的構建集成將創建一個後期構建任務,在發佈模式下成功編譯後運行。然後該任務可以讀取定義唯一名稱的配置文件,並將成功構建的EXE複製到輸出目錄。

一些操作可以通過任務配置文件完成:http://msdn.microsoft.com/en-us/library/ms171466


或者,您可能希望創建一個小應用程序來爲您完成所有工作,並將配置開關傳遞給它。

例如,下面是一個小的後期構建命令,我會在成功構建Web應用程序時執行縮小我的JavaScript/CSS。的概念是類似的:

  • 構建
  • 執行一個應用程序(如msbuild.exe,或者自定義生成應用程序)
  • 將數據傳遞到可執行文件(類似路徑,開關等)
  • 可執行寫入文件出來

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" 
+0

你在通用命名上做了一個好點,但至少必須命名exe(並且有幾個)。你有沒有一個如何做到這一點的構建任務的例子? – 2012-08-10 02:08:22

+0

目前我們使用一個直觀的視覺工作室構建過程與一個wix項目來創建一個msi。 – 2012-08-10 02:11:49

+0

查看我更新的答案。您可以創建一個自定義應用程序在發佈版本中執行。該應用可能需要執行後續步驟(如更改Wix配置)爲每個步驟創建唯一的MSI。 – 2012-08-10 02:20:38

1

你可以在你想在所有的輸出組件(DLL和EXE)任何後期生成過程中使用ILMerge,創建一次性客戶品牌構建。

ilmerge /out:CustomerName.exe internalName.dll internalName.exe