我用Visual Studio 2012基于WPF构建了一个C#应用程序,使用C++ DLL并针对.NET4.5。我有两个项目在运行,一个是C#项目,另一个是C++ DLL项目。我将这两个项目发布到同一个文件夹中,其中包含一个C#的
我在开发机上运行它们一切正常。但在其他机器上运行
我尝试了许多方法,但似乎都没有起作用。我按照这篇文章中的解决方案进行操作,但仍然不起作用。
开发机和目标机器是相同的。唯一的区别是在开发机上安装了Visual Studio 2012。
.exe
和一个C++的.dll
。我在开发机上运行它们一切正常。但在其他机器上运行
.exe
时,会抛出以下异常:
它无法识别与其在同一文件夹中的DLL。System.DllNotFoundException: 无法加载DLL
我尝试了许多方法,但似乎都没有起作用。我按照这篇文章中的解决方案进行操作,但仍然不起作用。
开发机和目标机器是相同的。唯一的区别是在开发机上安装了Visual Studio 2012。
代码:
C#:
[DllImport(@"Wireless.dll", EntryPoint = "?cert_exists@certificate@CertFuncs@@SAHHPBD@Z", CallingConvention = CallingConvention.Cdecl)]
static extern int cert_exists(int store, [MarshalAs(UnmanagedType.LPTStr)]string cert_str);
C++:
static int __declspec(dllexport) cert_exists(int type, LPCSTR cert_str);
更新:
如果我在目标计算机上安装Visual Studio 2012,一切都正常。如果我移除它,应用程序会再次崩溃。你有什么想法吗?是什么使 Visual Studio 能够让这个应用程序工作?