c# - 将引用 C++/CLI 包装器的 UserControl 添加到表单的非托管 dll 时出现问题

标签 c# .net c++-cli user-controls

我的 UserControl 将 C++/CLI 包装程序引用到非托管 C++ dll。当我尝试将 UserControl 添加到表单时,出现 Visual Studio 错误,显示“无法创建组件‘userControl’”,原因是 System.IO.FileNotFoundException。

根据我能够确定的情况,问题源于 visual studio 没有复制 C++/CLI 包装程序集的非托管依赖项。如果我将非托管依赖项放在系统 PATH 上,一切正常。

有更好的方法吗?

最佳答案

最简单的做法是将实际的 .dll 包含在您的项目中,将其构建操作标记为“内容”,然后将“复制到输出目录”设置为“始终”。这应该将 .dll 放入您的输出目录中,以便您的应用程序可以运行,并且只包含项目中的文件应该将它放在项目目录中,以便设计人员可以找到它。

请确保您的安装项目也包括该项目的内容文件的项目输出。

编辑

如果这些不起作用,您还可以编辑项目本身的引用路径(在项目属性中),但我不确定这是否会影响设计器。如果没有,那么您唯一真正的选择是将 .dll 放在系统路径目录之一中。

关于c# - 将引用 C++/CLI 包装器的 UserControl 添加到表单的非托管 dll 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/817139/

相关文章:

c# - 我在可移植类库上使用 HttpClient 得到 403

c# - 如何列出实体集的属性?

c# - "An invalid or incomplete configuration was used while creating a SessionFactory"Web 服务中的 NHibernate

c# - MySqlMembershipProvider 的表前缀

c# - 我可以使用 C# 列出本地安装的数字证书吗?

c# - WPF TextBlock 中的自动垂直滚动条?

interop - 如何将 C++/CLI 代码的某些部分编译为 native 代码,将某些部分编译为托管代码?

c++ - 只用一个头文件开始一个新项目

c# - 如何通过引用将 float 从 C++ 传递回 C#?

c# - 单例代码摘录,一道面试题