我在Visual Studio Community 2015中安装了最新版本的VSH Tools for VS(编写本文时为3.0.375)。
创建任何PowerShell脚本/模块项目后,我无法在Visual Studio中运行或调试它。在没有打开文件的情况下运行它会导致脚本/模块“构建”。
------ Build started: Project: PowerShellModuleProject1, Configuration: Debug Any CPU ------
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
我也在调试窗格中看到了这个。
C:\PowerShellModuleProject1\PowerShellModuleProject1.psd1
The program 'PowerShellModuleProject1.psd1: PowerShell Script' has exited with code 0 (0x0).
在打开选项卡的情况下运行它,只需在PowerShell ISE中打开该文件即可。试图运行项目中提供的功能给我一般的错误:
Get-Function : The term 'Get-Function' is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name, or if a
path was included, verify that the path is correct and try again.
At line:1 char:1
+ Get-Function
+ ~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Function:String) [], CommandNotFou
ndException
+ FullyQualifiedErrorId : CommandNotFoundException
卸载并重新安装扩展程序无效。我仍然得到同样的东西。
这是在Windows 10 Home,VS Community 2015(更新2)上使用最新版本的POSH Tools for VS从扩展库中运行。
更新 不知何故,普通脚本现在正在运行,但模块不是。我在调试输出中发现了这个错误。
PS C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE> C:\PowerShellModuleProject1\PowerShellModuleProject1.psm1
[ERROR] Program 'PowerShellModuleProject1.psm1' failed to run: Application not foundAt
[ERROR] line:1 char:1
[ERROR] + . 'C:\PowerShellModuleProject1\PowerShellModuleProject1.psm1'
[ERROR] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
[ERROR] At line:1 char:1
[ERROR] + . 'C:\PowerShellModuleProject1\PowerShellModuleProject1.psm1'
[ERROR] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ERROR] + CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedEx
[ERROR] ception
[ERROR] + FullyQualifiedErrorId : NativeCommandFailed
[ERROR]
答案 0 :(得分:0)
没有解决根本问题,但我创建了一个名为DebugPowerShellModuleProject.ps1的单独的ps1文件,其中包含:
Remove-Module PowerShellModuleProject
Import-Module PowerShellModuleProject
Get-Function
然后,我可以在Get-Function函数上放置一个断点,当我通过在DebugPowerShellModuleProject文件上运行或按F5开始调试时它会被点击。还有一个额外的好处,我可以通过在函数调用中指定它来将参数传递给Get-Function。