다른 패키지 (AnotherPkg)의 빌드 작업에 종속되는 빌드 대상을 포함하는 NuGet 패키지 (MyPkg)가 있습니다. AnotherPkg에는 해당 빌드 태스크 DLL이있는 tools 디렉토리가 있습니다. NuGet 동작에 따라 DLL은 \ packages \ AnotherPkg.0.1.1 \ tools에 설치됩니다.다른 패키지의 NuGet 패키지 도구 참조
AnotherPkg의 도구 경로를 참조하고 버전에 관계없이 알맞은 방법이 있는지 궁금합니다. 예를 들어, 패키지 사용자가 AnotherPkg를 0.1.2로 업그레이드 할 수 있고 내 패키지에서 아무 것도 변경할 필요가 없도록하고 싶습니다.
AnotherPkg의 디렉토리를 찾으려고 노력하는 코드가 있지만 AnotherPkg가 아직 설치되지 않은 경우 프로젝트가로드되지 않을 수 있습니다.
<ItemGroup>
<AnotherPkgDll Include="$(SolutionDir)\packages\AnotherPkg.*\tools\AnotherPkg.Tasks.dll" />
</ItemGroup>
<UsingTask AssemblyFile="@(AnotherPkgDll)" TaskName="Whatever" />
기타 도움말? 나는이 정보를 얻기 위해 일종의 NuGet 함수가 빠져 있기를 바라고 있습니다.
$ (SolutionDir)을 사용하지 마십시오. 솔루션 파일없이 명령 줄에서 빌드 할 수 없습니다. 대신 $ (MSBuildThisFileDirectory) .. \ AnotherPkg. *를 사용하고 사용자 지정 가능 속성을 사용하여 AnotherPkg의 버전 번호를 AnotherPkg로 수정하는 것을 고려하십시오. $ (AnotherPkgVersion) \ tools \ AnotherPkg.tasks –