【问题标题】:.NET SDK Project Nuget Packaging: Add Tools Folder?.NET SDK 项目 Nuget 打包:添加工具文件夹?
【发布时间】:2018-07-04 03:20:52
【问题描述】:

新的 .NET SDK 项目允许在构建过程中直接从各种目标生成 NuGet 包。

我意识到 content 不再被允许,但看起来 tools 仍然是一个可行的选择。

我的情况是,我需要在安装包后分发其他内容 - 我知道这不能再通过 NuGet 完成,这很好。但是,我想显示一个网页,其中包含下载和安装附加资产的说明。

基本上我想做一些类似于Newtonsoft.Json 所做的事情:

我知道您可以使用 powershell 脚本来调出网页,但是是否可以通过项目构建将该脚本放入 NuGet 包中?

【问题讨论】:

    标签: nuget .net-core csproj


    【解决方案1】:

    您可以combinePackPackagePath 项目元数据。

    来自StackExchange.Precompilation的示例:

    <None Include="*.targets" Pack="true" PackagePath="build" />
    <None Include="App.config" Pack="true" PackagePath="tools\$(AssemblyName).exe.config" />
    

    但是请注意,安装/卸载 powershell 脚本 are not executed anymore, since NuGet v3。该功能已被deprecatedfeature requests 添加回来已被拒绝。如果您仍想试一试,您的 .csproj 应包含以下内容:

    <None Include="install.ps1" Pack="true" PackagePath="tools" />
    

    同样值得注意:

    如果您只需要 tools 文件夹中的程序集输出(而不是 lib),则可以使用 IsTool property

    【讨论】:

    • 所以看起来可行 - 工具文件夹与 powershell 脚本一起添加。然而,不幸的是,它看起来实际上并没有运行。只需仔细检查,JSON.NET 也不再显示其启动页面。
    【解决方案2】:

    m0sa 回答了我提出的问题,但我想在此处添加一些关于我的实际使用场景的附加信息,即显示某种readme 文件。

    原来Nuget支持在Nuget包的根目录下添加readme.txt文件,如果找到了就会显示出来。请注意,该文件必须命名为 readme.txt - 不支持其他格式的 AFAIK。

    虽然不能有更丰富的显示太糟糕了,但至少文本文件会激活链接以供点击。

    为此:

    • 将 readme.txt 文件添加到项目的根目录
    • 然后将其添加到您的 .csproj 文件中:

    <ItemGroup> <None Include="readme.txt" Pack="true" PackagePath="." /> </ItemGroup>

    这会导致在软件包作为主软件包安装时显示readme.txt 文件。文件为依赖时不显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      相关资源
      最近更新 更多