新的.NET SDK项目允许直接从各种目标生成NuGet包作为构建过程的一部分。
我意识到content
不再被允许,但看起来tools
仍然是可行的选择。
我的情况是我需要在安装软件包后分发其他内容 - 我知道这不能再通过NuGet完成了,这很好。但是,我想显示一个网页,其中包含下载和安装其他资产的说明。
基本上我想做类似Newtonsoft.Json
所做的事情:
我知道您可以使用powershell脚本来显示网页,但是可以通过项目构建将该脚本放入NuGet包中吗?
答案 0 :(得分:1)
您可以combine Pack
和PackagePath
项元数据。
来自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。该功能已deprecated,而feature requests将其添加回来已被拒绝。如果你还想试一试,你的.csproj应该包含这样的内容:
<None Include="install.ps1" Pack="true" PackagePath="tools" />
另外值得注意的是:
如果您只需要tools
文件夹中的汇编输出(而不是lib
),则可以使用IsTool
property。
答案 1 :(得分:1)
m0sa回答了我问的问题,但是我想在这里添加一些关于我的实际使用场景的附加信息,它显示了某种readme
文件。
事实证明,Nuget支持将readme.txt
文件添加到Nuget包的根文件夹中,如果找到,则会显示该文件。请注意,该文件必须命名为readme.txt
- 不支持其他格式AFAIK。
虽然情况太糟糕,但您无法显示更丰富的内容,至少文本文件会激活点击链接。
要做到这一点:
.csproj
文件中:
<ItemGroup>
<None Include="readme.txt" Pack="true" PackagePath="." />
</ItemGroup>
导致在将软件包安装为主软件包时显示readme.txt
文件。当文件是依赖项时不显示。