【问题标题】:How can I build a nuget package from project.json?如何从 project.json 构建 nuget 包?
【发布时间】:2016-12-21 15:05:05
【问题描述】:

我正在寻找从我的源代码构建 nuget 包的最简单方法。我有 Visual Studio 2015 Update 3,我的解决方案有一个 .NET Core 类库项目(基于 project.json)。我正在尝试从该项目创建一个包。目前为了能够这样做,我创建了一个 .nuspec 文件并手动编辑它,即复制了我的 project.json 文件中列出的所有依赖项。

除了手动创建和编辑 .nuspec 文件之外,还有什么更好的方法吗?如果我在 project.json 中进行更改,我还必须将它们反映在 .nuspec 文件中,这听起来很奇怪。

顺便说一句,这个guide 对我不起作用,因为没有“生成时生成输出”复选框

虽然安装了 Microsoft ASP.NET 和 Web 工具

我错过了什么吗?

【问题讨论】:

    标签: visual-studio-2015 nuget nuget-package .net-core


    【解决方案1】:

    这些是我们在项目中生成 NuGet 包所遵循的步骤-

    1.下载Nuget.exe并将其放在.csproj文件所在的文件夹中。

    2.打开cmd并输入nuget spec。将创建带有.nuspec 扩展名的文件。

    3.打开创建的文件并添加标签:

    <files> <file src="..\..\SomeRoot\**\*.*" target="libs\net461" /> </files>
    

    4.在cmd中执行nuget pack A.csproj –IncludeReferencedProjects。扩展名为 .nupkg 的文件被创建。

    5.转到视觉工作室。在 NuGet 包管理器设置中,添加“包源”并提供您的 .nupkg.nuspec 文件所在的路径。

    6.关闭 Nuget 包管理器并再次打开它。现在您可以在浏览选项卡下创建的包源中找到它。

    注意:你的.nuspec 文件应该是这样的:

    <?xml version="1.0"?>
    <package  xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <metadata  xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
        <id>ABC.XYZ.FL</id>
        <version>1.0.0.0</version>
        <title>ABC.XYZ.FL</title>
        <authors>ABC</authors>
        <owners>ABC</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Framework that will be used to create objects in XYZ world</description>
        <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
        <copyright>2016</copyright>
        <tags>ABC.XYZ.FL</tags>
      </metadata>
      <files>
        <file src="bin\Debug\*.dll" target="lib\net461" />
      </files>
    </package>
    

    以下链接包含有关创建 nuget 包并将其托管在本地的更多详细信息:

    https://docs.nuget.org/create/creating-and-publishing-a-package

    https://docs.nuget.org/create/hosting-your-own-nuget-feeds

    https://docs.nuget.org/consume/nuget-config-file

    看看这是否有帮助。


    编辑:

    这是 dotnet pack 命令示例供您参考 -

    "scripts": {
      "postcompile": [
        "dotnet pack --no-build --configuration %compile:Configuration%"
      ]
    }
    

    【讨论】:

    • 没有。 csproj 文件。相反,在列出所有依赖项的地方使用 project.json。我的问题是我正在寻找一种方法来避免手动将依赖项复制到。 nuspec 文件更改时。
    • 哦,我是对的,我错过了这个!谢谢。然后您可以更正您的答案,以便我接受。
    • 检查我的编辑答案
    猜你喜欢
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多