适用于VS的POSH工具 - 无法在Visual Studio

时间:2016-05-03 19:50:59

标签: visual-studio powershell powershell-v5.0

我在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]

1 个答案:

答案 0 :(得分:0)

没有解决根本问题,但我创建了一个名为DebugPowerShellModuleProject.ps1的单独的ps1文件,其中包含:

Remove-Module PowerShellModuleProject
Import-Module PowerShellModuleProject
Get-Function

然后,我可以在Get-Function函数上放置一个断点,当我通过在DebugPowerShellModuleProject文件上运行或按F5开始调试时它会被点击。还有一个额外的好处,我可以通过在函数调用中指定它来将参数传递给Get-Function。