2009-03-11 3 views
6

C# Winforms 프로젝트 인 MainGUI가 있다고 가정 해 보겠습니다.VS2008.NET : 참조 된 프로젝트의 종속성을 가져와 주 프로젝트의 bin 폴더로 복사

같은 솔루션 인 ControlsLib에서 다른 프로젝트를 참조합니다.

ControlsLib는 Infragistics 또는 Telerik 컨트롤과 같은 타사 컨트롤 제품군을 참조하고 MainGUI에서 사용되는 사용자 컨트롤 집합을 제공합니다.

로컬 복사는 ControlsLib의 모든 참조에서 true로 설정되고 모든 타사 DLL은 ControlsLib \ bin \ release에 나타납니다.

그러나 나는 타사 DLL을

따라서

타사 컨트롤 DLL을 (NSIS를 사용하여이 경우) 소프트웨어의 설치가 생성되는 폴더가 MainGUI \ 빈 \ 릴리스에 자동으로 복사 할 수 없습니다 설치에 포함되지 않아서 타사 DLL에 종속 된 ControlsLib의 컨트롤이 사용될 때 런타임에 FileNotFoundException이 발생합니다.

내가 알지 못하는 "적절한"방법이 있습니까? 이전에는 파일을 복사하여 nant 빌드 스크립트에서이 문제를 처리했지만 새 프로젝트를 시작하고 확인하고 싶었습니다.

감사

답변

2

난 그냥 MainGUI의 .csproj 파일에 다음 포스트 빌드 이벤트 명령 줄을 추가하여이 문제를 해결 한 (프로젝트 속성 -> 빌드 이벤트를)

copy $(SolutionDir)ControlsLib\bin\$(ConfigurationName)\Infragistics2*.dll $(TargetDir) 
당신은 탭 게시, 옵션 응용 프로그램 파일의 기본 프로젝트 속성 (실행 일)를 수정하는 경우 그 사실 너무 쉬웠다하고

나는 몰랐다 ...

0

당신은 UI 프로젝트 (MainGUI)에서 필요한 파일에 대한 링크를 추가하고 에서 출력 폴더에 복사하도록 설정해야합니다. inbuilt 패키징 툴 (IIRC)은 이들을 올바르게 캐스케이드하지만, 외부 툴의 경우 수동으로해야합니다.

내 빌드 서버에서 참조를 조사하는 스크립트를 사용하고 빌드하기 직전에 모든 하위 참조를 추가합니다 (csproj 파일을 xml로 편집하여) ... 코드는 훌륭하지 않지만 작동합니다 작업.

0

Gentle.NET (O/R 매퍼)을 사용하여 비슷한 문제가 발생했습니다. DLL 중 하나가 복사를 거부합니다. 나는 몇 시간 동안 조사했고 이유를 찾을 수 없었습니다. 다른 모든 파일은 복사 중이지만 THAT 하나는 이상한 이유로 제외됩니다. Gentle은 3 개의 DLL, Gentle.Common.DLL, Gentle.Framework.DLL 및 Gentle.SQLProvider.DLL을 사용했습니다. 마지막 하나는 복사되지 않습니다. 단순히 스크립트를 만들어 결국

...

0

것은, 당신은 VS 말할 수있을 것입니다 복사하지 않는 모든 파일을 포함합니다.

관련 문제