2009-07-09 179 views
6

我正在使用Microsoft提供的Dll創建c#中的類LLibrary。如何靜態鏈接C#ClassLibrary的庫?

現在我想靜態添加這些微軟提供的庫到我的Dll.How我可以做到這一點。 我只是簡單地添加了對Microsoft提供的Dll和創建My Dll的引用?這很好嗎?

如果微軟提供的DLL在其他機器上不可用,那麼我的Dll可能會失敗,我需要靜態添加庫?

我該怎麼做?

+0

你想用這個完成什麼? – 2009-07-09 07:23:52

回答

6

有沒有這樣的事情靜態鏈接到.NET中的另一個程序集。有一些第三方產品,如.NET linker將程序集合成一個,但它們不受支持。

如果您擁有該庫的再發行許可證,則可以隨裝配一起發運副本。在Visual Studio中,您可以通過在該程序集引用的屬性窗口中將「Copy Local」設置爲「True」來實現此目的。

3

如果在執行時dll不可用;是的,它會失敗。但是:

  • 許多微軟的DLL預安裝了.NET(警告:「客戶端配置文件」)
  • 許多微軟的DLL是可再發行組件;因此,可將它們與你的包

沒有在覈心框架提供的鏈接,雖然ILMerge可能是有用的。

0

它不是很清楚你想達到什麼目的,但你似乎擔心你的類庫會在其他機器上工作或者沒有。問題是.Net框架是一個免費的可再發行組件,如果目標機器上不存在,應該安裝它。在機器上已經安裝.Net框架的情況下,應該沒有問題。

這樣的靜態鏈接在.Net中沒有任何意義,它爲您的項目添加一個程序集引用。希望它有幫助

+0

當你在C++中靜態鏈接一個dll時,它將exe和dll合併爲一個文件,這使得它更容易分發並且能夠在有限的環境中運行。 – 2016-01-21 17:10:52