2011-03-31 55 views
1

我的工作涉及創建各種工具和實用程序,以實現自動化目的的內部使用。包裝在不同環境下使用的相同代碼

我的一些操作都集中在一個DLL文件中。

此DLL然後包裹在另一個DLL用於從內1個自動化工具,而它是裝在另一個DLL在另一種工具來使用(例如 - 的FinalBuilder)。

然後將它作爲可執行文件重新打包,作爲獨立工具運行。

我的問題是 - 有沒有人遇到這樣的情況的任何,在多個小「動作」或公用事業需要在各種情況下被重用(的FinalBuilder的,獨立的,等等)?

如果是這樣,有沒有能夠一次定義這些,並且能夠在不同的地點使用它們,而不是編寫額外包裝所有的時間變得更容易的選擇嗎?

感謝

回答

1

我不明白需要在另一個DLL「包裝」共享代碼DLL。

如果你的代碼是共享的,那麼就應該在庫(有自己的命名空間(S))。任何數量的應用程序都可以鏈接到(引用)這個庫。爲了部署這些應用程序,他們只需要在他們的.exe文件旁邊安裝一個庫程序集的副本 - 不需要包裝。

如果你希望你的.exes文件是單獨的文件,不需要額外的dll,那麼你可以使用一個像ILMerge這樣的工具來將這些程序集合在一起,形成一個單一的二進制文件。

最後一個選項是使共享相同的源代碼CSHARP多個項目,讓你簡單地「包括」共享代碼到你的所有.exe項目。這意味着你不需要運送額外的dll或使用ILMerge在編譯後合併程序集,就可以構建一個.exe文件。這樣做的缺點就是每次構建.exe時必須構建所有庫代碼,因此構建可能會變慢。 (不管你做什麼,不做多複製源代碼 - 如果你要更新的共享庫很重要的是,只有一個的所有源代碼主副本

+0

ILMerge是正是我想要的! – 2011-03-31 23:08:29

+0

關於你最後的建議 - 我發現很難管理這種情況下,我有多個項目都打開了相同的代碼。共享文件中的一個變化可能會打破其他項目......是什麼意思是「讓你的構建更慢」? – 2011-05-03 10:57:23

相關問題