nuget - 如何使用 nuget 包部署 PS1 脚本
问题描述
我有一个 PS1 脚本,我在所有项目中都使用它来签署程序集。到目前为止,我将此文件复制到我的所有项目中。现在我想用 PS1 文件创建一个 nuget 包。
我创建了一个 nuspec 文件并将该文件放在“内容”中。不幸的是,什么也没发生。然后我试图把它放在lib中。仍然注意到发生了。当我在我的项目中恢复包时,在这个项目中没有创建任何文件。
当我用我的 7-Zip 分析 nupkg 文件时,文件看起来没问题。ps1 文件分别在 content, lib 中。
我在网上没有找到任何关于这个话题的东西。有人可以向我解释一下,如何创建这样的 NuGet 包吗?
解决方案
当项目使用packages.config
安装 NuGet 包时,包的tools\install.ps1
脚本将运行。但是,当使用包的项目使用(如 SDK 样式项目,由 .NET Core 使用)时,不再发生这种情况。PackageReference
同样,安装时将文件content
夹中的文件nupkg
复制到项目中,但仅当项目使用packages.config
. PackageReference
项目使用 中的contentFiles
文件夹nupkg
,但行为不同。这些文件仅在 .NET Framework 项目的构建时复制,而不是在安装时复制,对于 .NET Core 项目在发布时复制。可能不是您想要签署程序集的内容。
您可能想要使用的功能是在您的包中包含 MSBuild 道具和目标。请注意,props
和targets
文件名必须与包 ID 完全匹配,NuGet 才能使用它们。您可能想afterTargets="build"
猜测一下。
推荐阅读
- mysql - 为什么 pandas read_sql_query 用问号替换 utf8 字符
- java - 3路/4路循环赛调度算法
- javascript - 使用 window.print() 时失去焦点
- c# - 如何使用图片框从一张图像中执行 2 状态按钮
- powershell - AAD Application Client Secret
- django - Django-ORM:为什么 distinct() 不能使用注释?
- polymer - Vaadin 缓存.js
- php - 在 .htaccess 中更改 PHP 版本后出现内部服务器错误
- spring-boot - 如何解决共享 Amazon S3 预签名 URL 的风险?
- php - php 文件在 localhost 服务器中工作,但不在 cpanel 中