2010-06-20 3 views
0

다음 구조의 VS 솔루션 (.sln)이 있습니다.ILMerge 및 프로젝트 참조

  • 프로젝트
  • 프로젝트 B는 내가 제 3 자 롤 ILMerge를 사용하려면

(등 NHibernate에, StructureMap, 같은 제 3 자 어셈블리에뿐만 아니라 참조를 프로젝트에 대한 참조를 포함합니다) 어셈블리를 ProjectB.dll에 추가합니다. 그러나 ProjectA를 병합하고 싶지 않습니다.

나는 here 강조 표시된 절차를 사용했습니다. 이것은 제 3 자 어셈블리의 병합과 관련하여 원활하게 작동했습니다. 그러나 ProjectB를 빌드 할 때 여전히이 오류가 발생합니다.

병합 중에 예외가 발생했습니다 : 해결되지 않은 어셈블리 참조가 허용되지 않음 : ProjectA.

ProjectA를 병합하도록 명시 적으로 지정하지 않았습니다. 다시 말해, 나는이 프로젝트에 대해 진실을 말하지 않는다. IlMerge가 ProjectA를 무시하게하려면 어떻게해야합니까? 그런데 ProjectA는 직접적인 어셈블리 참조가 아닌 프로젝트 참조입니다.

감사합니다.

답변

4

ILMerge에 대해 /lib 인수를 사용하여 ProjectA.dll이 포함 된 디렉터리를 전달합니다.

특히합니다 (.NET 4.0 클라이언트 프로파일 ProjectB의 대상 플랫폼을한다 가정 할 때) : 4.0

ILMerge.exe /out:MasterDll.dll 
      /targetplatform:v4,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client" 
      /lib:ProjectA\bin\Release 
      ProjectB\bin\Release\ProjectB.dll 
      Libraries\NHibernate\NHibernate.dll 
      Libraries\StructureMap\StructureMap.dll 
      ... 
0

그냥 사용

/에 targetPlatform : V4를, "%의 ProgramFiles % \ 참조 어셈블리 \ 마이크로 소프트 \ Framework.NETFramework \ v4.0 "

관련 문제