를 보면 다음과 Microsoft.Bcl.Build.targets
같은 많은 프로젝트 구성 대상이 있습니다.
EnsureBindingRedirects
-바인딩 리디렉션에 대해 옵트 인 된 참조를 결정하고이를 사용하여 app.config를 업데이트합니다.
BclBuildValidateNugetPackageReferences
-이 대상은 현재 프로젝트에 설치된 모든 Nuget 패키지에 현재 프로젝트에 설치된 종속성 (전이 종속성)도 있는지 확인합니다.
따라서이 평가를 기반으로이 기능은 NuGet 종속성을 추가 / 제거 / 업데이트 할 때 개발 환경에서만 필요하다고 결정했습니다. 문제를 일으키는 CI 환경에서는 무시할 수 있습니다.
따라서 * .csproj 파일에 종속성을 유지하고 싶지만 CI 빌드를 실행할 때는 무시합니다. 이 블록을 포함하는 빌드 환경 대상 파일 (예 : builder.targets)에 조건부 가져 오기를 추가하여이를 수행했습니다.
<PropertyGroup>
<BclBuildImported>Ignore</BclBuildImported>
</PropertyGroup>
이는 CI 환경에서 대상을 무시하지만 개발 환경에서 활성화하는 순 효과가 있습니다. 나는 이것을 일주일 이상 실행했으며 지금까지 아무런 문제가 없습니다 ...
나는 누군가가 이것을하는 것이 나쁜 생각이라는 것을 나타내는이 패키지에 대한 더 나은 정보를 가지고 있는지 알고 싶습니다. 지금까지 나는 그것이 좋은 생각이라고 생각합니다.
2018-02-01 수정 :
명령 줄에서 ignore 매개 변수를 전달하여 Microsoft.Bcl.Build.targets
논리 를 건너 뛸 수도 있습니다 .
msbuild (targets, etc) /p:BclBuildImported=Ignore
So I want to keep the dependency in my *.csproj files, but ignore it. I did that by adding a conditional import on a build environment targets file (eg builder.targets)
자세히 설명해 주시겠습니까?