2010-09-14 36 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