【问题标题】:How can I deploy an unmanaged DLL with a WPF click-once application?如何使用 WPF 单击一次应用程序部署非托管 DLL?
【发布时间】:2011-05-30 07:38:40
【问题描述】:

我有一个使用非托管 dll 的 WPF 单击一次应用程序。

在本地调试时,我刚刚将 dll 复制到了 debug/bin 文件夹中。

如何将 dll 包含在项目 (VS2010) 中,以便应用程序部署和访问它?

我尝试将其添加为资源并设置“内容”和“始终复制”,该文件似乎存在于设置/部署文件中,但应用程序无法看到它。

如果有帮助,这是我用来访问非托管 DLL 中的方法的代码示例。

 [DllImport("ODBC_VER_DETECT.dll")]
 extern private static long GetCompanyFileVersion([MarshalAs(UnmanagedType.LPStr)] String sDataBase,
                                                 [MarshalAs(UnmanagedType.LPStr)] StringBuilder sVersion);

【问题讨论】:

  • 你不能简单地将DLL添加为内容文件吗?
  • 是的 - 我试过了(见编辑)
  • 我的歉意 - 而不是通过整个“添加资源”繁琐 - 我只需要“添加现有项目”到项目的根文件夹中,然后设置“内容”和“始终复制” .谢谢史蒂夫 B。
  • 没问题。当你发布你自己找到的答案时,你对社区有点帮助;)

标签: wpf clickonce


【解决方案1】:

而不是经历整个“添加资源”的繁琐——我只需要“添加现有项目”到项目的根文件夹中,然后设置“内容”和“始终复制”。

【讨论】:

  • 还有其他更优雅的解决方案吗?
  • 注意:如果内容项在项目 A 中,但项目 B(依赖于 A)是您要发布的项目,则不会包含内容文件。项目 B不会看到 A 中的内容项,因此您将无法将它们添加为已发布的应用程序文件。
猜你喜欢
  • 2016-11-25
  • 2016-08-25
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
相关资源
最近更新 更多