我有一个自定义NuGet包(My.Resources),其中包含一个程序集和一个依赖于另一个自定义NuGet包(My.Base)。
如果我安装了软件包,则安装成功完成,但未添加程序集引用。以下是Install-Package
命令的完整输出:
Attempting to resolve dependency 'My.Base (≥ 1.0.0)'.
Installing 'My.Base 1.0.0'.
Added file 'My.Base.dll' to folder 'My.Base.1.0.0\lib\net45'.
Added file 'My.Base.1.0.0.nupkg' to folder 'My.Base.1.0.0'.
Successfully installed 'My.Base 1.0.0'.
Installing 'My.Rsources 1.1.0-beta0001'.
Added file 'My.Resources.dll' to folder 'My.Resources.1.1.0-beta0001\lib\net45'.
Added file 'My.Resources.XML' to folder 'My.Resources.1.1.0-beta0001\lib\net45'.
Added file 'My.Resources.1.1.0-beta0001.nupkg' to folder 'My.Resources.1.1.0-beta0001'.
Successfully installed 'My.Resources 1.1.0-beta0001'.
Adding 'My.Base 1.0.0' to WindowsFormsApplication8.
For adding package 'My.Base 1.0.0' to project 'WindowsFormsApplication8' that targets 'net45',
>> Assembly references are being added from 'lib\net45'
Added reference 'My.Base' to project 'WindowsFormsApplication8'
Added file 'packages.config'.
Added file 'packages.config' to project 'WindowsFormsApplication8'
Successfully added 'My.Base 1.0.0' to WindowsFormsApplication8.
Adding 'My.Resources 1.1.0-beta0001' to WindowsFormsApplication8.
Added file 'packages.config'.
Successfully added 'My.Resources 1.1.0-beta0001' to WindowsFormsApplication8.
虽然我们有其他几个自定义NuGet包的结构和构建方式相同,但这是唯一具有此行为的方法。 .nuspec
内的.nupkg
看起来很好,并且程序集位于正确的(net45
)文件夹中。
答案 0 :(得分:4)
NuGet将您的NuGet包视为仅包含语言资源的localized NuGet package。不引用此类NuGet包中的程序集。
例如,如果将My.Resources.dll重命名为My.Resources2.dll,则NuGet将引用该程序集。
基本上任何以.resources.dll结尾的文件被NuGet认为是资源程序集在安装NuGet包时都不会被引用。