2015-01-13 1 views
4

내부적으로 사용하기 위해 너겟 패키지로 패키지하려고 시도하는 상당히 복잡하고 큰 프로젝트가 있습니다. 나는 파일 복사를 피하고자한다. 왜냐하면 꽤 많은 바이너리가 있기 때문이다. 대신, 패키지 청사진 파일을 <file ...> 요소를 사용하여 파일을 가리 키려고합니다.lib 하위 폴더에없는 어셈블리가있는 NuGet 참조 사양

내가하려고 무엇이든
<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>AgentCore</id> 
    <version>6.1.0</version> 
    <authors>kkm</authors> 
    <description>AgentCore</description> 
    <references> 
     <reference file="Utils.dll" /> 
    </references> 
    </metadata> 
    <files> 
    <file src="Kigo\bin\Release\Utils.dll" target="/lib/net40"/> 
    </files> 
</package> 

, 내가 오류를 얻고있다 : 여기가 내 문제를 재현 할 수있는 파일의 단순화 된 버전입니다

Invalid assembly reference 'utils.dll'. Ensure that a file named 'utils.dll' exists in the lib directory.

내가 this answer에서 제안을 시도했지만 아무 소용에.

NuGet documentation에 설명 된 것처럼 물리적으로 디렉토리를 배치하지 않고 대신 파일 참조를 사용할 수 있습니까?

답변

3

<file ...> 요소의 target= 디렉토리에 문제가있었습니다. 선행을 포함하지 않아야합니다 /, 즉. 이자형. 상대 경로를 포함해야합니다. 선행 슬래시는 패키지 레이아웃을 변경하지 않지만 NuGet에서 참조 평가 장치를 혼란스럽게 만듭니다. 위의 사양에서 올바른 라인도 작동

<file src="Kigo\bin\Release\Utils.dll" target="lib/net40"/> 

와일드 카드를해야한다 (그리고 내 원래 의도였다)하십시오 <reference=...>이 제대로의 방법으로 포장 된 바이너리를 허용하는 와일드 카드 스펙으로

<file src="Kigo\bin\Release\*.*" target="lib/net40"/> 

, 와일드 카드 확장.

관련 문제