2011-03-24 3 views
0

VC++로 작성된 타사 DLL과이 C++ 라이브러리에 액세스하기위한 타사 C# dll을 사용하는 WPF ClickOnce 응용 프로그램을 배포하고 있습니다. Visual Studio 솔루션을 각각의 구성 요소에 설치 했으므로 Release/x86 구성을 사용하여 빌드했습니다.프로덕션 컴퓨터에 배포 할 때 System.DllNotFoundException을 가져 오는 중

내 응용 프로그램도 릴리스로 설정되어 있지만 Visual Studio가없는 시스템에 응용 프로그램을 배포하면 System.DllNotFoundException이 발생하고 C# DLL을 찾을 수 없다고 표시됩니다. 모든 필수 파일이 배포 된 컴퓨터의 "Application Files"디렉토리에 있는지 확인했습니다.

도움 주셔서 감사합니다.

+0

배포 된 컴퓨터의 실행 파일 디렉토리에 있어야하지 않습니까? "데이터 파일"대신 "포함"으로 표시되어 있는지 확인하십시오. – Reddog

+0

예, C++ .dll과 C# .dll은 모두 실행 파일과 동일한 폴더에 있으며 Include/Required로 표시됩니다. –

+0

내 응용 프로그램이 VS2008 인 동안 VS 2010에 타사 구성 요소를 추가했다고 추가해야합니다. . 차이가 있는지 확실하지 않습니다. –

답변

0

거의 항상 이와 비슷한 경우에 Microsoft Visual C++ CRT DLL을 포함하는 것을 잊었습니다.

그들은 보통

c:/program files (x86)/microsoft visual studio .net 10/vc/redist/... 

어딘가에 유사한은 Visual Studio 설치에 포함되어 있습니다, 난 그저 내 실행 파일이 어디 폴더에 (당신이 VS 10.0 이하도 경우 및 매니페스트 파일)에 DLL을 복사 저장되고있다.

"정상적인"설치 프로그램을 사용하기 때문에 이것이 ClickOnce에도 적용 가능한지 확실하지 않습니다.

+1

제안 주셔서 감사합니다. CRT .dll을 실행 파일과 동일한 폴더로 옮겼지만 같은 오류가 발생했습니다. –

+0

Uwe ... 저는 VS 2010 C++ 재배포 (문제가되는 타사 DLL에 대한 의존성입니다)를 문제 기계에 설치하여이 문제를 해결할 수있었습니다. 재배포를 설치하는 것이 가능하다고 말하고 있습니까? 단순히 실행 파일의 폴더에 CRT dll 2 개를 추가하면됩니까? –

+0

@ 존 E - CRT는 단지 구성 요소 중 하나입니다. 다른 _may_에는 ATL 및 MFC 라이브러리가 포함되어 있습니다. 필자의 경우 DLL을 실행 파일의 폴더에 복사하는 것만으로도 충분했다. –

관련 문제