我的 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/