2013-03-18 3 views
1

.NET Framework 3.0 및 Visual Studio 2012를 사용하여 VB.NET 설치 프로그램을 만들고 있습니다. 설치 프로그램에서 얻은 파일을 압축 해제하려면 ICSharpCode.SharpZipLib을 사용하고 있습니다. 우편 번호 .zip 파일 다운로드 및 압축 해제하려는 시도는, 내가 오류가 SharpZipLib의 DLL 파일을 찾을 수 없다는 주장되게하고VS에 추가 된 참조가 인식되지 않습니다.

그러나

C:\Users\Bailey\Documents\Visual Studio 2012\net-20\ICSharpCode.SharpZipLib.dll 

를 VS2012에서 디버그 모드에서 실행할 때 , 그것은 완벽하게 잘 작동합니다. 안녕하세요?

+0

DLL은 'Bin \ Release' 폴더에 있어야합니다. 거기에 복사하고 프로그램을 실행 해보십시오. – keyboardP

+0

좋아요, 방금했습니다. 하지만 .exe를 배포하려면 어떻게해야합니까? DLL을 함께 제공해야합니까? – Anonymous

+0

예, 최종 사용자가 해당 DLL을 사용할 필요가있는 경우 (그렇듯이 들릴 것임) DLL을 프로그램과 함께 제공해야합니다. 'SharpZipLib'에 대한 라이센스를 확인하는 것을 잊지 마십시오. – keyboardP

답변

1

DLL은 Bin\Release 폴더에 있어야하므로 거기에 복사해야합니다. 최종 사용자가이 어셈블리를 사용해야 할 경우 프로그램과 함께 DLL을 배포해야합니다 (SharpZipLib의 라이센스에서 어떤 조건이 있는지 확인하십시오).

+0

DLL없이 .exe 파일을 배포 한 다음 실행 중에 DLL을 실행 파일의 디렉터리로 다운로드하고 이동하면 확인 만하면됩니다. – Anonymous

+0

프로그램이 실제로 실행 중인지 여부는 확실하지 않습니다. 그런 다음에 계획을 세우려면 프로그램에서 어셈블리를 동적으로로드해야합니다 (예 : http://stackoverflow.com/questions/117781/c-sharp-correct-way-to-load-assembly-find-class-and- call-run-method)를 안전한 측에 두어야합니다. 그렇지 않으면 어셈블리가 처음로드 될 때 어셈블리가 존재할 것으로 기대하기 때문에 프로그램에서 오류가 발생할 가능성이 있습니다. 그러나 최종 사용자가 프로그램을 시작하기 전에 수동으로 어셈블리를 추가해야한다면 제대로 작동합니다. 물론 배포하기 전에 작동하는지 테스트하고 싶을 수도 있습니다 :) – keyboardP

+0

작업 디렉토리로 다운로드가 성공했습니다. 엄청 고마워. – Anonymous

관련 문제