首页 > 解决方案 > 如何使用 nuget 包部署 PS1 脚本

问题描述

我有一个 PS1 脚本,我在所有项目中都使用它来签署程序集。到目前为止,我将此文件复制到我的所有项目中。现在我想用 PS1 文件创建一个 nuget 包。

我创建了一个 nuspec 文件并将该文件放在“内容”中。不幸的是,什么也没发生。然后我试图把它放在lib中。仍然注意到发生了。当我在我的项目中恢复包时,在这个项目中没有创建任何文件。

当我用我的 7-Zip 分析 nupkg 文件时,文件看起来没问题。ps1 文件分别在 content, lib 中。

我在网上没有找到任何关于这个话题的东西。有人可以向我解释一下,如何创建这样的 NuGet 包吗?

标签: nugetnuspec

解决方案


当项目使用packages.config安装 NuGet 包时,包的tools\install.ps1脚本将运行。但是,当使用包的项目使用(如 SDK 样式项目,由 .NET Core 使用)时,不再发生这种情况。PackageReference

同样,安装时将文件content夹中的文件nupkg复制到项目中,但仅当项目使用packages.config. PackageReference项目使用 中的contentFiles文件夹nupkg,但行为不同。这些文件仅在 .NET Framework 项目的构建时复制,而不是在安装时复制,对于 .NET Core 项目在发布时复制。可能不是您想要签署程序集的内容。

您可能想要使用的功能是在您的包中包含 MSBuild 道具和目标。请注意,propstargets文件名必须与包 ID 完全匹配,NuGet 才能使用它们。您可能想afterTargets="build"猜测一下。


推荐阅读