【问题标题】:Install .NET Standard version of a multi-target Nuget from a .NET 4.6.2 application?从 .NET 4.6.2 应用程序安装多目标 Nuget 的 .NET Standard 版本?
【发布时间】:2021-02-07 02:15:28
【问题描述】:

是否可以从 .NET 4.6.2 应用程序中更喜欢安装多目标 Nuget 的 .NET Standard 版本?

我有一个 .NET 4.6.2 应用程序,它使用为 .NETFramework 4.6.2 和 .NETStandard 2.0 构建的 Nuget 包

查看 .csproj 项目文件时,我可以看到:

<Reference Include="CompanyAcme.TheNugetPackage.Client, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
  <HintPath>..\packages\TheNugetPackage.Client.2.1.4\lib\net462\CompanyAcme.TheNugetPackage.Client.dll</HintPath>
</Reference>

这让我觉得我的 .NET 4.6.2 应用程序使用的是 .NET 4.6.2 版本的 Nuget 包。

【问题讨论】:

  • 为什么要这样做?最好使用.net框架版本的lib来避免DLL issues
  • 我想知道这是否可能,我有一种特殊情况,即 .NET 标准版本的 nuget 包没有我无法包含在我的应用程序中的旧依赖项。跨度>
  • 如前所述,.net 4.6.x 存在这些依赖问题,因此您会在输出中获得更多 DLL。 Microsoft 将 netfx 配置添加回多个库以避免此问题。

标签: nuget nuget-package .net-standard-2.0


【解决方案1】:

你可以用这个肮脏的黑客来做到这一点,但在做之前我肯定会三思而后行

<PackageReference Include="Prism.Core" ExcludeAssets="Compile" GeneratePathProperty="true"> <Version>7.1.0.431</Version> </PackageReference>
<Reference Include="Prism"> <HintPath>$(PkgPrism_Core)lib\netstandard2.0\Prism.dll</HintPath> </Reference> 

来自https://duanenewman.net/blog/post/a-better-way-to-override-references-with-packagereference/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    相关资源
    最近更新 更多