3

我有一个自定义 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) 文件夹中。

4

1 回答 1

6

NuGet 将您的 NuGet 包视为仅包含语言资源的本地化 NuGet 包。不引用此类 NuGet 包中的程序集。

例如,如果将 My.Resources.dll 重命名为 My.Resources2.dll 之类的名称,则 NuGet 将引用程序集。

基本上,任何以 .resources.dll 结尾的文件都被 NuGet 视为资源程序集,在安装 NuGet 包时将不会被引用。

于 2016-02-29T18:28:51.043 回答