为什么我的C#程序没有';找不到C++/项目中引用的运行时CLI DLL 我最近在C++中使用了一个小型的C++封装器。这是一个简单的程序。我能够正确地编译它,并且能够在我的C#项目中添加dll引用,没有任何错误。我还可以从这个CPP/CLI dll创建对象,并在编译时访问这些函数,而不会出现任何错误

为什么我的C#程序没有';找不到C++/项目中引用的运行时CLI DLL 我最近在C++中使用了一个小型的C++封装器。这是一个简单的程序。我能够正确地编译它,并且能够在我的C#项目中添加dll引用,没有任何错误。我还可以从这个CPP/CLI dll创建对象,并在编译时访问这些函数,而不会出现任何错误,c#,interop,c++-cli,C#,Interop,C++ Cli,现在,当我运行程序时,引用此dll中对象的第一个函数调用引发异常。例外情况如下: 无法加载文件或程序集“ProtoBufRapper,Version=1.0.4381.26401,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件 我不确定我的问题出在哪里。DLL文件是否与正在启动的.Exe位于同一目录中?有时文件不会被复制,也找不到 在DLL引用上,单击属性并检查生成操作。将其设置为“复制”。您是否查看了运行它的主机上的GAC?您的C+

现在,当我运行程序时,引用此dll中对象的第一个函数调用引发异常。例外情况如下:

无法加载文件或程序集“ProtoBufRapper,Version=1.0.4381.26401,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件


我不确定我的问题出在哪里。

DLL文件是否与正在启动的.Exe位于同一目录中?有时文件不会被复制,也找不到


在DLL引用上,单击属性并检查生成操作。将其设置为“复制”。

您是否查看了运行它的主机上的GAC?您的C++/CLI项目是否引用了任何其他程序集?@M.Babcock:如果找到了DLL但未能加载,则错误消息可能会略有不同。加载失败的常见原因可能包括缺少依赖项和错误的体系结构(即x64进程中的x86 DLL)。但在本例中,它可能不在库搜索路径中。您是否尝试添加来自VS…的引用。。?还要检查是否可以对dll进行GAC。。您使用的是什么版本的VS。。如果是2010年,请记住它有自己的2.0版和3.5版GAC,谢谢大家的回复。意识到DLL没有被复制到主程序的二进制文件夹中。原因是,我所指的C++/CLI库中的C#程序只是另一个在另一个C#主程序中使用的库。忘记在主C#程序中添加对我的C++/CLI库的引用。现在工作得很好。有没有办法显式指定加载DLL的位置?我想避免把它们放在同一个目录中。我试图将C#dll的位置添加到路径中,但没有帮助。@标记:是,处理
AppDomain.AssemblyResolve
事件。另外,这允许您根据进程是32位还是64位来选择不同的C++/CLI混合模式DLL。