Running powershell scripts during nuget package installation and removal

时间:2021-08-13 17:14:32   收藏:0   阅读:29

示范:

 1 param($installPath, $toolsPath, $package)
 2 
 3 function Uninstall-ProjectPackages($project) {
 4     #remove no use dlls
 5     $project.Object.References | Where-Object {  $_.Name -eq ‘A.ServiceInterface‘ } | ForEach-Object { $_.Remove() }
 6     # save project
 7     $project.Save()
 8 }
 9 
10 
11 $projects = Get-Project -All
12 $projects| ForEach-Object { Uninstall-ProjectPackages $_ }

Running powershell scripts during nuget package installation and removal

来源:https://everydaylifein.net/netframework/running-powershell-scripts-during-nuget-package-installation-and-removal.html#:~:text=Your%20NuGet%20package%20can%20contain%20PowerShell%20scripts%20which%2C,supported%20in%20Visual%20Studio%202017%20%28%20read%20more%29

 

Your NuGet package can contain PowerShell scripts which, based on a convention, will be called during the package installation/removal process.

Your scripts should begin with the following line

param($installPath, $toolsPath, $package, $project)

Where

In order to be executed, the scripts need to be included in the tools directory of the nuget package. You can achieve this by editing your *.nuspec file and adding a file reference.

<?xml version="1.0"?>
<package >
  <metadata>...</metadata>
  <files>
	<file src="scripts\NugetScripts\Install.ps1" target="tools\Install.ps1" />
  </files>
</package>

You will quickly find debugging to be fairly painful if you need to operate with the $project reference. In this case, you are highly encouraged to test all your $project actions in the Visual Studio Package Manager Console by writing

$project = Get-Project

Now you can interactively test your operations in the console, and you don’t have to constantly pack and install/uninstall your package to check if the scripts work as intended.

原文:https://www.cnblogs.com/micro-chen/p/15137620.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!