创建nuget:无法打包引用的dll

时间:2015-05-09 17:11:47

标签: c# .net dll nuget nuget-package

我正在尝试使用“Nuget Package Explorer”创建一个nuget。该项目引用了2个dll女巫目标.net4.0和主dll目标.net4.5。

按照规定,我将2个引用的dll放在名为“net40”的“lib”文件夹内的文件夹中,主文件夹名为“net45”,然后我推送位于here的nuget

但是当我尝试在另一个项目中安装它时,它不会占用任何dll!

我做错了吗?

谢谢。

更新

nuget包包含:

lib (folder)
    net45 (folder)
        MainAssembly.dll -> targets .net_4.5
        Microsoft.VisualStudio.TextTemplating.10.0 -> targets .net_4
        Microsoft.VisualStudio.TextTemplating.Interfaces.10.0 -> targets .net_4

注释:

  • MainAssembly需要另外两个程序集
  • 我只想定位.net版本4.5

问题:

使用上面的结构创建一个nuget包不起作用,当在新项目中安装nuget时MainAssembly没有添加引用列表,只添加了另外两个程序集。

1 个答案:

答案 0 :(得分:0)

  

该项目引用2个dll女巫目标.net4.0和主dll目标.net4.5。

     

按照规定,我将2个引用的dll放在名为“net40”的“lib”文件夹内的文件夹中,主文件夹名为“net45”,然后我推送位于here的nuget

NuGet包可以针对多个.NET框架版本。但是,.NET项目不能。

您的依赖程序集必须放在同一个.NET Framework版本文件夹中,才能将它们安装到目标项目中。因此,如果您希望NuGet包定位到4.0和4.5,则结构应如下所示:

lib
    net40
        MainAssembly.dll
        DependentAssembly1.dll
        DependentAssembly2.dll
    net45
        MainAssembly.dll
        DependentAssembly1.dll
        DependentAssembly2.dll

每个组中的主程序集必须以与父文件夹相同的框架版本为目标。依赖程序集可以针对与目标版本相同或更低的任何版本。

请注意,通常每个程序集都打包为一个单独的NuGet包,而NuGet包依赖于彼此,而不是将相关的程序集放在同一个程序包中。