2014-12-24 2 views
0

MSBuild 4.0 및/또는 4.5에서는 종속 파일을 기준으로 프로젝트의 매니페스트 출력으로 처리 할 추가 파일을 지정할 수 있으며 이진 프로젝트 출력과 함께 복사됩니다. 복사 했어? 이상적으로는 빌드 할 때 .dll 옆에 파일을 만들고 싶습니다.이 파일을 프로젝트 디렉토리에 복사 할 때마다이 파일을 .dll과 동일한 폴더에 저장하는 것이 좋습니다.MSBuild에서 프로젝트 출력 파일 집합 기능 향상

이것이 명확하지 않으면 C# 컴파일러에서 만든 .pdb 및 .xml 파일을 생각하고 있습니다. 이러한 파일은 특별히 처리됩니다. 다른 프로젝트에서 .dll을 로컬의 이진 디렉터리에 복사하도록 요청할 때마다 이러한 파일은 .dll과 함께 저장됩니다. 내 특수 파일로이 세트를 늘릴 수 있습니까?

답변

0

이것은 불가능하며 여기에 그 이유가 나와 있습니다. 사실, MSBuild 프로젝트 사이에는 외부에서 접근 가능한 프로젝트 출력에 대한 개념이 없습니다. 대신 프로젝트에 대한 참조가 추가되면 SDK 제공 빌드 프레임 워크 (MSBuild 스크립트 기반)는 참조 된 DLL의 이름과 일치하는 몇 개의 특정 파일을 찾고이 파일을 DLL 자체와 함께 현재 프로젝트 출력으로 복사합니다 디렉토리 (CopyLocal이 설정된 경우, 이는 아마도 참조 된 프로젝트에 해당됩니다).

프레임 워크 v4.0에서 이것은 %windir%\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 파일에서 동일한 이름의 대상에서 호출 된 ResolveAssemblyReference 작업에 의해 수행됩니다. 이 태스크는 matchin PDB 파일과 XML 문서 파일을 포함하여 대상 DLL 옆에 특별히 명명 된 파일을 찾습니다. 디 컴파일 된 소스에서 추론 할 때 다른 파일도 발견됩니다.

그래서 주어진 프로젝트의 어떤 것도 이러한 파일을 프로젝트에서 "수출"한 것으로 표시하지 않습니다. 마법은 당기는면에서 발생합니다.