다중 플랫폼 응용 프로그램을 만들고 있습니다. 나는 창에서 Visual Studio 2017에서 프로젝트를 빌드 할 때Visual Studio 커뮤니티의 조건부 참조 2017
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
</PropertyGroup>
, 나는이 두 디렉토리를 얻을 : 나는 다중 표적 공유 라이브러리 (2.0 및 .NET 4.5을 .netstandard 대상) ... 프로젝트 파일을 참조하십시오이 출력 (netstandard2.0, net45) 및 해당 dll. 빌드는 성공입니다. 나는 맥에서 Visual Studio 2017에서 동일한 프로젝트 (동일한 코드)를 빌드 할 때
, 나는 이런 종류의 오류를 얻을 :
유형 'OptionAttribute는'모두 'CommandLine.DotNetStandard 버전에 존재나는 조건부로 다음과 같은 방법으로 명령 줄 파서 라이브러리를 참조= 1.0.30 '과'커맨드, 버전 = 1.9.71.2 '
:
<!-- CommandLineParser library -->
<ItemGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<PackageReference Include="CommandLine.DotNetStandard">
<Version>1.0.3</Version>
</PackageReference>
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net45'">
<PackageReference Include="CommandLineParser">
<Version>1.9.71</Version>
</PackageReference>
</ItemGroup>
이것은 창문에서 잘 작동하지만, 맥에서는 증상이 나타나지 않는 것으로 보입니다. 이것은 Mac에서 Visual Studio의 알려진 버그입니까? 내가 뭔가 잘못하고 있는거야?
그래,하지만 너무 나쁜 msbuild를 단순히 자동으로 따라서 실제 문제를 마스킹 조건을 무시합니다. –