2017-01-11 4 views
4

Visual Studio 2017 RC를 사용하여 사용자 지정 MSBuild 작업을 개발할 때 다음과 같은 문제점이 있습니다. (v15.1.0-preview-000458-02 사용) 이외의 다른 종속성을 추가하자마자. NET 코어 지원), 종속성을 찾을 수 없으므로 다른 .csproj MSBuild 프로젝트에 작업을로드 할 수 없습니다.Visual Studio 2017 MSBuild 작업 개발

모든 종속성을 Debug 폴더에 자동으로 복사하는 방법이 있습니까? 또는 테스트 할 때마다 게시해야합니까?

갱신 1 :
게시에 대한 문제는 내 환경에 대한 지역 것이었다 및 수정되었습니다.

갱신 2는 :
최대한 빨리 netstandard1.4에서 TargetFramework을 변경하면 그것도에서 모든 작업을로드 할 수 없습니다 netstandard1.6 할 것으로 보인다. 자동으로 디버그 폴더에 모든 종속성을 복사 할 수있는 방법이 있나요

The task could not be loaded from the assembly. 
Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its 
dependencies. 
+1

두 가지 질문이있는 경우 별도로 질문해야합니다. – svick

+0

2 부는 어쨌든 관련없는 문제 였으므로 남아있는 것은 하나뿐입니다. – Fionn

답변

2

: 최대한 빨리 사용으로 netstandard 1.6 그것은 예외가 발생? 아니면 테스트 할 때마다 게시해야합니까?

기본적으로 그리고 좋은 이유로 인해 .NET Core 및 .NET Standard 프로젝트는 참조 된 어셈블리를 빌드 폴더에 복사하지 않습니다. 대신 NuGet 캐시에서 해결됩니다.

하지만 실제로 필요한 경우 CopyLocalLockFileAssemblies 설정으로 기본 설정을 재정 의하여이 동작을 변경할 수 있습니다.

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> 

CREF : https://github.com/dotnet/sdk/blob/d20405f91a2959fa91fea6285d9a896286727f2a/src/Tasks/Microsoft.NET.Build.Tasks/build/Microsoft.NET.Sdk.BeforeCommon.targets#L55-L56

두 번째 질문은

이 최대한 빨리 netstandard1.4에서 TargetFramework을 변경하면이

구축하기 위해 netstandard1.6 할 것 같다 "MSBuild.exe"및 "dotnet.exe msbuild"모두에서 작동하는 작업 어셈블리 인 경우, 표준 1.4 이하. netstandard1.6은 .NET Framework 4.6.1 (MSBuild.exe 실행)과 호환되지 않습니다.

netstandard1.4에서 사용할 수없는 API가 필요한 경우 .NET Framework 용 작업을 크로스 컴파일해야합니다. 및 .NET 표준, 훨씬 더 복잡하지만 수행 할 수 있습니다.

+0

어셈블리를 복사해야한다는 요구 사항을 포함하지 않는 솔루션을 발견했습니다. 하지만 다른 사람이이 답변에 대한 유효한 유스 케이스를 가지고있을 수도 있습니다. 어쨌든 고마워 :) – Fionn

관련 문제