使用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个程序集都是空类库,目标是.Net 4.6。
安装nuget软件包时,将为所有程序集添加引用,但不包括: -
- ClassLibrary.Resources.dll
特别是那些名称以.Resources结尾的程序集会导致问题。
升级此类程序集时问题仍在继续 - 引用仍然指向以前的版本,实际上程序包本身仍保留在packages文件夹中。
当然,解决方法是简单地手动添加引用,但对于多个项目中使用的定期更改的库,这被证明是重复且令人厌烦的。