【发布时间】:2016-01-14 13:53:41
【问题描述】:
我有一个名为 app1.exe 的应用程序,它从名为 CodeToCall.dll 的 dll 库中调用一个函数。在生产环境中,我的库位于属于另一个程序的另一个文件夹中。当我运行我的应用程序时,它会引发以下异常:
未处理的异常:System.IO.FileNotFoundException:无法加载文件或程序集“dllToCall,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。
在主(字符串 [] 参数)
在 mainCRTStartupStrArray(String[] arguments)
我引用的 Dll 可能正在使用一些库,并且它们无法加载。
我尝试在 Windows PATH 中包含 dll 文件夹,但没有成功,这是引用 dll 的正确方法
我的CodeToCall.dll 代码:
public class Class1
{
public void Some()
{
Console.WriteLine("HI");
}
}
我的app1.exe,当我添加codeToCall.dll作为参考时:
int main(array<System::String ^> ^args)
{
//PCWSTR wcstr = L"C:\Program Files(x86)\Sigma"
Console::WriteLine(L"Hello World");
dllToCall::Class1^ obj = gcnew class dllToCall:Class1;
obj->Some();
Console::ReadKey();
return 0;
}
【问题讨论】:
-
这完全取决于你如何加载
dll。 -
这不是
C#,如果没有适当的语言标签,您很难获得答案。另外,避免将代码作为图像发布,将其复制到答案中是..复杂的。 -
@Sinatr 你说得对,它是 C++/cli,但 dll 加载机制是一样的
-
这是一个简单的“找不到文件”错误,我们不太可能为您找到它。只需确保 C# 项目构建到与 C++ 项目相同的目录即可。使用 Fuslogvw.exe 进行故障排除。