2013-05-06 140 views
0

我的C#代碼加載一個C++ DLL。它可以在安裝了Visual Studio 2008的PC上正常工作。但是,在其他機器上的程序有一個例外system.dllnotfoundexception無VS 2008

Unhandeled exception: system.dllnotfoundexception unable to load dll ... 
this application has failed becasue the application configuration is incorrect.... 

停止我如何可以使沒有安裝VS 2008的機器上的代碼運行?

回答

0

vs vs 2008 on project: 屬性> c/C++>運行時庫>選擇:多線程調試(/ MTd)

1

如果您的DLL是您的自定義DLL,則必須將您的DLL與您的項目一起分發。如果不是,則必須使用自定義安裝程序安裝所需的DLL,或者如果它來自不同的提供程序,則安裝它們。

This後可能會有點老,但

DLL文件和.NET ClickOnce部署

我想我的部署.NET應用程序的ClickOnce應用程序之一。問題是我正在連接到Oracle(請參閱此處和此處的以前的帖子)。連接到Oracle需要至少4個DLL文件,這些文件通常必須與EXE文件位於同一目錄中。問題是,當程序發佈時,這些DLL沒有以任何方式被引用,所以該程序將不起作用。

然後我讀了關於將文件添加到項目中的情況,以便ClickOnce和Publish處理器將找出需要的DLL並將它們添加到清單中。

Here is the process in Visual Studio 2005: 
1. Put the 4 DLL files in their own directory in your solution directory (for ease of use mostly). 
2. Add all four files to your project by going to 「Project->Add Existing Item…」 
3. Click on each DLL file in the solution explorer and then change their property: 「Copy To Output Directory」 to 「Copy Always」. 

就是這樣!現在,當我發佈或運行應用程序時,我不必擔心DLL文件是否應該在哪裏。