powershell - 如何在 NuGet 中从 install.ps1 输出调试消息

标签 powershell nuget

我正在开发一个 NuGet 包,包括一个 install.ps1在软件包安装期间运行的脚本。我希望能够从我的脚本中输出消息并输出运行 .bat 的结果我的 sript 中的文件。

这是我的 install.ps1 :

param($installPath, $toolsPath, $package, $project)
Write-Output "Running install.ps1 for MyPkg"
Set-Location $toolsPath
.\helper.bat | Write-Output

当我在 Visual Studio 中安装我的包时,我会查看 Package Manager Output 中的选项页面,我看到:
Executing script file 'C:\Test\packages\MyPkg.1\tools\install.ps1'.

并且脚本似乎正在运行(我可以通过其他方式告诉 helper.bat 运行了),但我没有看到任何输出。我怎样才能让输出工作?

最佳答案

从 NuGet 包管理器对话框安装时我无法获得输出,稍后我将深入了解它的去向。

但是从 Nuget 控制台(工具-> 库包管理器-> 包管理器控制台)安装时,您应该能够看到它。输出直接进入控制台。例子 :

PM> uninstall-package samplepackage
hello from unninstal.ps1
Successfully removed 'samplepackage 1.0.0' from WebApplication24.

卸载.ps1:
param($installPath, $toolsPath, $package, $project)
Write-Host "hello from unninstal.ps1"

关于powershell - 如何在 NuGet 中从 install.ps1 输出调试消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353233/

相关文章:

powershell - 比较具有空元素的数组

powershell - 在 Powershell 中的转录期间控制换行符 - 可能是记事本

powershell - 2>&1在PowerShell中是什么意思

c# - 无法加载文件或程序集System.Runtime.CompilerServices.Unsafe

nuget - 修改 github actions pipeline 中 nupkg 的版本

powershell - 找不到类型[System.Net.Webutility]

PowerShell:如何将 COM 对象转换为 .NET 互操作类型?

c# - Visual Studio 2010 - 卸载 NuGet

asp.net - 找不到 'Newtonsoft.Json'的版本

asp.net - Visual Studio 2015 nuget 解决方案未保存如何修复?