2014-03-31 2 views
0

저는 Microsoft Visual Studio 2010 및 C#으로 프로젝트를 만들고 있습니다. 이 프로젝트를 통해 .dll을 생성하고 싶습니다.C# DLL은 다른 DLL에 의존합니다

내 프로젝트에서

나는 itextsharp.dll에 외부 참조가 나는 그것이 나에게 오류 준다 다른 컴퓨터에 myproject.dll를 사용하려고하면이 나에게 오류를 제공합니다 :

Can't load file or assembly itextsharp...

그래서, 누군가가 내가 해결할 수있는 방법을 알고를 이?

답변

2

그냥 또한이 "true"로의 "로컬 복사"속성을 설정하여 자동화 할 수 있습니다 myproject.dll

과 같은 폴더에 itextsharp.dll를 복사합니다. 그래서 각각의 Visual Studio가 자동으로 .dll 파일을 현재 프로젝트의 모든 컴파일 된 dll/exe 파일에 복사합니다.

+0

참조 'itextsharp.dll'의 프로 시저 복사본 로컬이 이미 사실입니다. 프로젝트를 만들 때마다'myproject.dll'과'itextsharp.dll'을 빌드합니다. 이 dll에 대한 참조가 빌드 작업을 빌드하는 경로와 동일한 경로에 있어야합니까? – mtrebi

+0

@Sharekhan,이 속성을 "true"로 변경하면 Visual Studio가 모든 작업을 처리합니다. 다른 컴퓨터에 전역으로 설치되지 않은 경우에는 해당 컴퓨터에 있어야합니다. 이 설정 속성은 Visual Studio에서 참조 된 라이브러리를 복사하도록 직접 지시합니다. – rufanov

+0

@Sharekhan, *이 속성을 설정하십시오. – rufanov

0

web.config 파일을 편집하여 정상적인 동작 :

1 - 사이트

2의 루트에있는 Web.config/app.config 파일을 엽니 다 - 다음 줄을 찾아서 주석() : 어셈블리 이름 XXXXX-입니다.

<add assembly="xxxxx", Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>3 - Save and close the web.config file and try again 

참고 링크 : http://manual.aspdotnetstorefront.com/p-1118-could-not-load-file-or-assembly-microsoftwebservices3-version3000-cultureneutral-publickeytoken31bf3856ad364e35.aspx

UPDATE :

위는 매우 좋아요 이유이기 때문에 새로운 프로젝트에 itextsharp.dll을 참조 할 필요가 다음 작동하지 않습니다.

itextsharp.dll -> 레벨 0 (다른 DLL에 따라 생략)
Myprojet.dll -> 단계 1 (itextsharp.dll)에 따라 애플리케이션을 소비
-> 2 레벨 (레벨 1에 따라 , 레벨 2)

소비 응용 프로그램을 빌드 한 후에는 bin 폴더에 레벨 0, 레벨 1 dll을 가져와야합니다. 따라서 itextSharp.dll을 참조로 추가해야합니다.

0

.dll로 Microsoft 빌드가 아닌 프로젝트에 dll을 추가하는 경우이 .dll 파일을 복사하여 응용 프로그램과 함께 붙여 넣어야합니다. 이 .dll은 응용 프로그램이 현재 디렉터리에서 검색되기 때문에 함께 있어야합니다.

+0

프로젝트 창에서이 참조 된 라이브러리의 속성 하나만 변경하십시오. "로컬 복사본"을 "true"로 설정하십시오. 그리고 각각의 재건 후에 Visual Studio는 자동으로 .dll 파일을 복사합니다 .. – rufanov

관련 문제