我正在创建 NuGet 包。我已经放入了两个文件content
用户安装此软件包时将添加的文件夹、exe 和配置文件。
另外我想更改这两个文件的 VS 项目属性。
构建包时我需要做什么?
当您说“应用属性更改”时,您是指文件系统属性,例如上次修改时间、隐藏标志等?
如果是这样,您可以使用一组正在运行的 PowerShell 脚本(如果它们存在于您的包中)来执行此操作。当您构建包时它不会发生,但当有人安装包时它会运行 - 从用户的角度来看,这应该具有相同的效果。你可能想要Init.ps1
or Install.ps1
.
From 在软件包安装和删除过程中自动运行 PowerShell 脚本 http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#Automatically_Running_PowerShell_Scripts_During_Package_Installation_and_Removal在 NuGet 文档中:
包可以包含 PowerShell 脚本,这些脚本会在以下情况下自动运行:
该软件包已安装或删除。 NuGet 自动运行脚本
基于使用以下约定的文件名:
-
Init.ps1
runs the first time a package is installed in a solution.
- 如果相同的包安装到其他
解决方案中的项目,脚本在这些期间不会运行
装置。
- 该脚本也会在每次解决方案出现时运行
打开。例如,如果安装包,请关闭 Visual Studio,
然后启动 Visual Studio 并打开解决方案,
Init.ps1
脚本再次运行。
-
Install.ps1
runs when a package is installed in a project.
- 如果同一个包安装在一个解决方案的多个项目中,
每次安装软件包时都会运行该脚本。
- 包的 content 或 lib 文件夹中必须有文件
Install.ps1
跑步。仅在工具文件夹中包含某些内容并不能启动此操作。
- 如果您的包裹还有
init.ps1
, install.ps1
追赶init.ps1
.
-
Uninstall.ps1
每次卸载软件包时都会运行。
- 这些文件应位于包的工具目录中。
- At the top of your file, add this line:
param($installPath, $toolsPath, $package, $project)
-
$installPath
是到的路径
安装包的文件夹
-
$toolsPath
是到的路径
安装包的文件夹中的tools目录
-
$package
是对包对象的引用。
-
$project
是一个
对 EnvDTE 项目对象的引用并代表该项目
包安装到.注意:这将为空Init.ps1
。在
该案例没有引用特定项目,因为它
在解决方案级别运行。该对象的属性已定义
在 MSDN 文档中。
- 当你测试时
$project
在创建脚本时在控制台中,您可以将其设置为$project = Get-Project
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)