2010-09-14 51 views
2

我正在創建一個.NET DLL,它充當使用非託管DLL上的PInvoke的包裝器。我的問題是,如果我使用單擊一次PInvoking引用其他DLL的非託管DLL,需要使用該.NET Wrapper DLL的項目的部署包含哪些DLL?PInvoke使用其他DLL的DLL - ClickOnce問題

文件涉及:

  • 項目使用點擊一次部署
  • 一個包裝非託管的DLL .NET的DLL(稱之爲X.DLL)
  • X.DLL這是一個非託管的DLL
  • Y.DLL是一個非託管DLL,由X.DLL調用

是否必須將所有這些文件都包含在點擊一次部署中?只有.NET DLL?解釋爲什麼會有所幫助,以及:)

回答

3

是的,你必須指定所有這些。或者至少確保它們都以這種或那種方式在目標上可用。

儘管.NET DLL可能會自動選擇(作爲項目的一部分)。但是您必須檢查是否正確檢測到非託管DLL,否則請添加它們。

如果這是關於/ Sytem32/DLL或其他共享的文件,則可能有問題。您無法使用ClickOnce安裝共享DLL,因此您必須將其複製到本地。然後希望它能起作用。

+0

他們不是來自System32,所以我需要添加.NET DLL,X和Y都要發佈?一旦發佈到服務器,這是如何工作的?當有人通過clickonce安裝它時,是否將DLL複製到他們的計算機上? – Jage 2010-09-15 02:00:52

+0

不得不改變爲不被接受。我需要一個更全面的答案,以便如何使用Click Once進行工作,併發布它不起作用。 – Jage 2010-10-11 21:40:31

+0

@Jage,好吧,你可以給它一個賞金。 – 2010-10-12 15:12:16