Nuget 不为名称以 .Resources 结尾的程序集添加引用

Nuget not adding reference for assemblies whose name ends in .Resources

当使用 NuGet 程序包管理器安装包含名称以 .Resources 结尾的程序集的程序包时,程序包安装正确但对该程序集的引用未添加到项目中。

工具:-

.nuspec 文件:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>ClassLibrary.TestPackage</id>
    <version>1.0.0.0</version>
    <title>ClassLibrary.TestPackage</title>
    <authors>Me</authors>
    <owners>Me</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <tags></tags>
  </metadata>
</package>

.nupkg 内容:-

  • lib
    • net46 (.NETFramework,Version=4.6)
    • ClassLibrary.Resource.dll
    • ClassLibrary.Resources.dll
    • ClassLibrary.Resourcex.dll
    • ClassLibrary.ResourcesWhatever.dll
    • ClassLibrary.Whatever.dll
    • ClassLibrary.WhateverResources.dll

所有 6 个程序集都是空的 class 库针对 .Net 4.6。

安装 nuget 包时,为所有程序集添加引用,除了:-

  • ClassLibrary.Resources.dll

问题似乎是名称以 .Resources 结尾的程序集引起的。

升级这样的程序集时问题继续存在 - 引用仍然指向以前的版本,实际上包本身仍然在 packages 文件夹中。

当然,解决方法是简单地手动添加引用,但事实证明,对于多个项目中使用的定期更改的库来说,这是重复且令人厌烦的。

这似乎是设计使然:-

https://github.com/NuGet/Home/issues/1499