【已解決】C#中整合DLL庫到自己的exe程式中
【問題】
已經實現了下載ST歌曲的小程式,但是由於其中註冊快捷鍵的功能,需要呼叫額外的一個dll庫,Interop.SHDocVw.dll,所以釋出的時候,除了釋出一個單獨的exe之外,還需要連帶dll一起釋出,很是不爽。
希望將此dll整合到exe中。
【解決過程】
1.從:
找到:
但是個人覺得還是很麻煩,暫且不去使用這類方法,再去找找是否有更好的辦法。
2.後來參考:
但是去找了下,所引用的dll是Interop.SHDocVw,但是其屬性中,找不到其所說的“嵌入互操作型別”:
3.再參考:
重新去新增此dll,看看是否可以設定。
但是此處卻找不到Interop.SHDocVw.dll是在哪裡引用的了。
然後去程式碼中看了看,相關程式碼是:
?1 |
SHDocVw.ShellWindows
sws = new
SHDocVw.ShellWindows();
|
然後後來手動刪除該SHDocVw,然後嘗試查詢。
後來折騰了半天,終於找到了。
本來是知道了該dll是屬於Microsoft Internet Controls的,所以後來嘗試找此關鍵字,最後是在COM中找到了:
添加了後,就可以看到那個SHDocVw了。
4.後來又參考了:
瞭解到了,對於SHDocVw的屬性中的Isolated,如果設定為True,則說明當編譯此專案的時候,不拷貝此dll到程式所在目錄。
而此處,看起來,本身就是作業系統自帶的此功能的支援,所以也不需要拷貝了。
所以暫時把其設定為True:
然後重新編譯試試,結果出錯:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
------
Rebuild All started: Project: downloadSongtasteMusic, Configuration: Debug x86 ------
Build
started 9 /25/2012
2:43:08 PM.
CoreClean:
Deleting
file
"D:\tmp\tmp_dev_root\downloadSongtasteMusic\downloadSongtasteMusic\downloadSongtasteMusic\bin\Debug\downloadSongtasteMusic.exe.config" .
Deleting
file
"D:\tmp\tmp_dev_root\downloadSongtasteMusic\downloadSongtasteMusic\downloadSongtasteMusic\bin\Debug\downloadSongtasteMusic.exe" .
Deleting
file
"D:\tmp\tmp_dev_root\downloadSongtasteMusic\downloadSongtasteMusic\downloadSongtasteMusic\bin\Debug\downloadSongtasteMusic.pdb" .
Deleting
file
"D:\tmp\tmp_dev_root\downloadSongtasteMusic\downloadSongtasteMusic\downloadSongtasteMusic\bin\Debug\Interop.SHDocVw.dll" .
|