从dll创建nuget包

Dan*_*l86 47 visual-studio nuget

我想创建一个NuGet包,它将多个.dll文件添加为我的项目的引用.

我有一个包含10个.dll文件的文件夹.

当我通过nuget安装它时,我希望将这些文件添加到项目的引用中.

Leo*_*SFT 62

我想创建一个nuget包,它将多个.dll添加为我的项目的引用.

我想给你两个解决方案来实现这个目标:

首先,使用NuGet Package Explorer:

  1. 下载NuGet Package Explorer.
  2. 打开NuGet Package Explorer,选择创建一个新包.
  3. 在内容选项卡上添加一个lib文件夹,然后添加您的dll文件
  4. 保存包并将其安装到项目中,检查它是否添加引用.

NuGet Package Explorer GUI

其次,就像Lex Li提到的那样,我们可以使用.nuspec打包程序集:

  1. 下载nuget.exe.
  2. 创建一个新项目.
  3. 打开cmd并切换到nuget.exe的路径
  4. 使用命令行: nuget spec "PathOfProject\TestDemo.csproj"
  5. 打开TestDemo.csproj.nuspec文件并修改它,并将程序集添加为文件; 下面是我的.nuspec文件:

    <?xml version="1.0"?>
    <package>
      <metadata>
        <id>TestDemo</id>
        <version>1.0.0</version>
        <authors>Tester</authors>
        <owners>Tester</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>TestDemo</description>
        <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
        <copyright>Copyright 2017</copyright>
        <tags>Tag1 Tag2</tags>
      </metadata>
      <files>
        <file src="MultipleDll\*.*" target="lib\net461" />
      </files>
    </package>
    
    Run Code Online (Sandbox Code Playgroud)
  6. 使用pack命令: nuget pack TestDemo.csproj.nuspec

  7. 通过NuGet Package Explorer打开TestDemo包.

NuGet Package Explorer  - 内置包输出

希望这可以帮到你.

  • 我正在尝试制作我的第一个NuGet软件包,并且从您那里了解了NuGet软件包资源管理器。超级容易。一个问题:我是否需要将DLL放入lib文件夹的“本地”子文件夹中?(第二个屏幕快照建议使用此类子文件夹)![屏幕快照](https://imgur.com/a/Oxu1yFT)。 (2认同)

小智 19

我认为创建NuGet包的最佳方法是use nuget.exe

  1. 首先,下载并安装nuget.exe(https://www.nuget.org/downloads
  2. 然后转到您的项目文件夹,按shift+右键单击以显示命令提示符
  3. 在命令提示符下,输入

    nuget spec
    
    Run Code Online (Sandbox Code Playgroud)
  4. 您现在将拥有一个.nuspec文件。在编辑器中将其打开,然后添加ID,作者等。

  5. 最重要的部分是files封闭的元数据标记之后的标记。

    您可以在此处定义所有dll,如下所示:

    <files>
       <file src="bin\Release\YourDll.dll" target="lib"></file>
    </files>
    
    Run Code Online (Sandbox Code Playgroud)
  6. 最后,您可以.nupkg使用以下命令创建文件:

    nuget pack 'Your_nuspec_file_name'
    
    Run Code Online (Sandbox Code Playgroud)

有关如何创建Nuget程序包的视频具有非常有用且清晰的教程。


小智 10

如果您想通过 Visual Studio 或 dotnet 执行此操作,则可以编辑 csproj 文件,添加一个 ItemGroup 以包含 dll,如下所示: 这会将其他 dll 与当前项目 dll 一起打包在 nuget 包中。

<ItemGroup>
    <Content Include="<path to other dll>">
        <Pack>true</Pack>
        <PackagePath>lib\$(TargetFramework)</PackagePath>
    </Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)