.NET SDK项目Nuget打包:添加Tools文件夹?

4
新的.NET SDK项目允许在构建过程中直接从各种目标生成NuGet包。我知道"content"已不再被允许,但看起来"tools"仍然是一个可行的选择。
我的情况是,在安装软件包后需要分发其他内容 - 我明白这不能再通过NuGet完成,这也没关系。然而,我想展示一个网页,其中包含下载和安装其他资源的说明。
基本上,我想做类似于"Newtonsoft.Json"的事情:

enter image description here

我知道你可以使用PowerShell脚本打开网页,但是通过项目构建将该脚本放入NuGet包中是否可行?

2个回答

1
你可以合并PackPackagePath项目元数据。
来自StackExchange.Precompilation的示例:
<None Include="*.targets" Pack="true" PackagePath="build" />
<None Include="App.config" Pack="true" PackagePath="tools\$(AssemblyName).exe.config" />

请注意,自NuGet v3以来,安装/卸载PowerShell脚本不再执行。该功能已被弃用,并且添加它的功能请求已被拒绝。如果您仍然想尝试,请确保您的.csproj文件包含以下内容:
<None Include="install.ps1" Pack="true" PackagePath="tools" />

还值得注意的是:

如果你只需要将汇编输出到tools文件夹中(而不是lib),你可以使用IsTool属性


看起来这样做是有效的 - 工具文件夹已经添加到PowerShell脚本中。但不幸的是,它似乎实际上并没有运行。我刚刚再次检查了一下,JSON.NET也不再显示他们的启动页面。 - Rick Strahl

1

m0sa回答了我提出的问题,但是我想在这里添加一些额外的信息,即显示某种readme文件。

事实证明,Nuget支持向Nuget包的根文件夹添加readme.txt文件,如果找到它,它将被显示。请注意,该文件必须命名为readme.txt - 据我所知,不支持其他格式。

enter image description here

虽然无法有更丰富的显示效果,但至少文本文件可激活链接以供点击。
要实现此功能,请执行以下操作:

enter image description here

  • 在你的项目根目录下添加一个readme.txt文件
  • 然后将以下内容添加到你的.csproj文件中:
<ItemGroup>
   <None Include="readme.txt" Pack="true" PackagePath="." />
</ItemGroup>

当安装包作为主要包时,会导致readme.txt文件被显示出来。如果该文件是依赖项,则不会显示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接