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

问题描述 投票:0回答:1

我正在尝试使用“Nuget Package Explorer”创建一个nuget。该项目引用了 2 个以 .net4.0 为目标的 dll,而主 dll 则以 .net4.5 为目标。

按照指定,我将 2 个引用的 dll 放在“lib”文件夹内名为“net40”的文件夹中,将主 dll 放在名为“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
未添加引用列表,仅添加了其他两个程序集。

c# .net dll nuget nuget-package
1个回答
0
投票

该项目引用了2个以.net4.0为目标的dll,主dll以.net4.5为目标。

按照指定,我将 2 个引用的 dll 放在“lib”文件夹内名为“net40”的文件夹中,将主 dll 放在名为“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 包相互依赖,而不是将依赖的程序集放入同一个包中。

© www.soinside.com 2019 - 2024. All rights reserved.