use*_*157 5 .net .net-assembly nuget visual-studio-2017
我从VS2017和NuGet依赖项的新PackageReference开始遇到问题。
起初,我为不再需要此多余的packages.config文件而感到兴奋。但是现在我有点失望:
我的某些程序集以Framework 4.0为目标,因为它们也必须能够在XP下运行。其他人没有此限制,并且目标框架为4.6.1。因为没有任何4.0程序集依赖于4.6.1程序集,所以它可以正常工作。只有另一个方向。
大多数程序集使用NLog NuGet包。但是,当使用新的PackageReference选项指定NuGet软件包时,面向框架4.6.1的程序集将始终安装面向.NET 4.5的NLog变体。从那时起,无法再构建依赖于.NET 4.0程序集的其他程序集:
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets(1987,5):警告MSB3275:主要参考资料为“ Tools,Version = 2.0.0.9180 ,无法解析Culture = neutral,processorArchitecture = MSIL,因为它间接依赖于针对“ .NETFramework,Version = v4.5”框架。这是当前目标框架“ .NETFramework,Version = v4.0”的更高版本。[D:\ Work \ 4.8.0_PackageReference \ Test \ TestApp.csproj]
我想将NLog for .NET 4.0用于所有项目。如果没有packages.config,这真的不可能吗?可以使用targetFramework属性指定所需的框架。但是我找不到新的PackageReference方法来做到这一点。真是难以置信...
<ItemGroup>
<!-- ... -->
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" Condition="'$(TargetFramework)' == 'net452'" />
<!-- ... -->
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
MS 文档链接:https : //docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files#adding-a-packagereference-condition
| 归档时间: |
|
| 查看次数: |
1707 次 |
| 最近记录: |