2009-12-11 89 views
9

我正在通過API爲另一個應用程序編寫插件。這些插件分發了一個DLL。是否有可能在DLL文件中嵌入其他文件,如pdf,圖像,chm幫助文件等......我希望能夠提供我的插件的文檔,但我仍然希望保留分發插件的能力作爲單個文件,用戶只需拖放到應用程序上進行安裝即可。我可以在DLL中嵌入其他文件嗎?

回答

15

Resource Files是你所需要的。

+0

非常感謝! – 2009-12-12 03:18:34

+1

你應該解釋如何做到這一點,而不僅僅是粘貼鏈接 – Toolkit 2017-08-27 11:32:41

+0

鏈接被破壞! – LuizLoyola 2018-02-27 16:29:12

0

是的,你可以做到這一點。

將資源文件添加到您的項目中。在Visual Studio中打開資源文件,然後單擊「插入資源」。您可以選擇不同類型的資源,包括外部文件。

Visual Studio會爲你生成代碼,以便您可以在運行時,從他們的名字通過Resources標識檢索文件的字節數組。

6

當然,您可以在您的DLL中嵌入資源。然後,在運行時你只是做:

Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("com.stackoverflow.plugin.example.Foo.pdf"); 

這會給你一個流嵌入在DLL中Foo.pdf文件。請注意,資源名稱的範圍必須取決於調用方法的類型的名稱空間。

0

作爲替代方法,如果你需要解壓並保存用戶機器上的文件(比如說你想你的應用程序之外訪問的CHM文件),你也可以做同樣的zip文件。

你說你想被「拖」到你的應用程序文件。只需將DDE事件檢查一下,看看該文件是否是zip文件(甚至可以使用類似jar的元數據)並解壓縮包括實際插件在內的必要文件。

這是相同的思路OPENXML文檔,他們真的只是呼嘯而過的化身。

相關問題