저는 다른 여러 것들에 의존하는 너겟 패키지를 가지고 있습니다 (예 : Newtonsoft.Json
). 패키지는 패키지의 구조가 같다, 그래서 그것은 단지 사용자의 MSBuild 작업을 추가하는 클래스 라이브러리로 사용하기위한 것이 아닙니다 : 너겟 패키지에서 너겟 패키지를 참조하십시오.
-package CustomBuildAction
|-lib/net45/CustomBuildAction.dll
|-build/CustomBuildAction.targets
내가 패키지 CustomBuildAction.targets
를 설치
"customBuildAction"작업을 "path to dll/CustomBuildAction.dll"어셈블리에서로드 할 수 없습니다. 파일 또는 어셈블리 'Newtonsoft.Json.dll, Version = ...'또는 해당 종속성 중 하나를로드 할 수 없습니다.
패키지 종속성으로 nuspec 파일에 Newtonsoft.Json.dll
을 포함 시켰습니다. nuget은 종속성으로 표시하지만 MSBuild는이를 해결할 수 없습니다.
../lib/net45/CustomBuildAction.dll
그러나이 DLL이 없습니다 배치 할 :이 문제처럼 보이는 나를 위해하는 것은 나는, 패키지 폴더 (폴더를 구축 할 상대) 상대 경로를 사용 .targets 파일에서 CustomBuildAction.dll
을 참조하고있어 예이다 모든 종속성을 찾을 수있는 빌드 출력 폴더에 저장합니다. 이 문제를 어떻게 해결할 수 있습니까? 패키지에 종속성을 포함시켜야합니까? 아니면 해결할 다른 방법이 있습니까?
사용자 지정 MSBuild 동작에서만 사용되는 경우 프로젝트에서 CustomBuildAction.dll을 참조해야합니까? 나는 단지 .targets 파일 옆의 빌드 디렉토리에 그것을 가지고 그것을 거기에서 가져올 것이다. 그런 다음 Newtonsoft.Json.dll 빌드 디렉토리에 있습니다. –
@Matt Ward 아니오, 프로젝트에 참조로 추가 할 필요가 없습니다. DLL을 빌드 폴더, 재미있는 아이디어로 이동 시키려고 할 것인가? – Leo