我正在創建一個多平臺應用程序。我有一個多目標的共享庫(針對.netstandard 2.0和.NET 4.5)...查看項目文件:Visual Studio Community 2017中的條件引用
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>
</PropertyGroup>
當我建立在Windows的Visual Studio 2017年的項目,我得到兩個目錄中輸出(netstandard2.0,net45)和相應的dll。構建是成功的。
當我建立在Visual Studio 2017年完全相同的項目(相同的代碼)在Mac上,我得到這個性質的錯誤:
類型「OptionAttribute」兩個「CommandLine.DotNetStandard,版本存在= 1.0.30' 和 '的CommandLine,版本= 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>
這適用於Windows,但在Mac上它看起來並不遵守條件。這是在mac上的視覺工作室的已知錯誤?難道我做錯了什麼?
沒錯,但太糟糕了,根本的MSBuild默默地忽略的條件,從而掩蓋了真正的問題。 –