【问题标题】:Easiest/shortest command to run a PowerShell script as a build event in Visual Studio在 Visual Studio 中将 PowerShell 脚本作为构建事件运行的最简单/最短的命令
【发布时间】:2009-12-30 16:33:49
【问题描述】:

刚开始使用 PowerShell。我在 VS 的后期构建活动中运行 DOS .bat 文件,并想升级到 PowerShell。蝙蝠文件很容易...CALL something.bat。我尝试使用 PowerShell ps1 文件来做到这一点,我的反复试验让我得到了以下结果(第一件事……显然,首先尝试了所有简单的事情):

powershell -command "& {(powershell '$(ProjectDir)test.ps1')}"

有这个的简写版本吗?我认为唯一真正困扰我的是对 powershell 可执行文件的冗余调用,但这可能只是因为 .ps1 文件在我的机器上默认在记事本中打开(我应该保留在其他系统上部署的冗余,所以我m 不依赖于文件类型的默认程序)。无论如何,如果这里有不必要的冗余,我很想知道。

我对 PowerShell 非常陌生,因此我们总是感谢任何相关的见解。

【问题讨论】:

    标签: windows visual-studio powershell


    【解决方案1】:

    我过去曾将 PowerShell 用作构建后事件;现在我倾向于使用psake (超级简单的构建系统)或者只是运行一个原始的 PowerShell 脚本。构建后事件变得混乱、不灵活,并且与在构建脚本中执行相同操作相比几乎没有优势。

    编辑:如果您仍然对使用构建后脚本感兴趣,我已经回答了here之前的问题

    【讨论】:

      【解决方案2】:

      根据MSN,这应该很好用:

      powershell.exe "$(ProjectDir)test.ps1"
      

      编辑:找到this

      powershell.exe "& ""$(ProjectDir)test.ps1"""
      

      【讨论】:

      • 我知道......这很有意义。但是,即使我现在再试一次,它也不起作用。
      • @Rich:我找到了另一篇文章,请尝试一下。
      • 是的。我看过另一个并尝试过,但我一定是打错了,因为它现在可以正常工作了。谢谢。
      【解决方案3】:

      我没有查看任何 MSDN,它可以正常工作:

      powershell $(ProjectDir)test.ps1
      

      顺便说一句。不要忘记为 PowerShell 的两个版本(32 位和 64 位)设置运行权限。

      【讨论】:

        【解决方案4】:

        我对这里详述的优雅的powershell $(ProjectDir) 解决方案感到有点满意,但我在通过 WebAdministration 的 Start-WebAppPool 和 Stop-WebAppPool 启动/停止 IIS 应用程序池时遇到了问题

        我在以下方面取得了更好的成功:

        %WINDIR%\SysNative\WindowsPowerShell\v1.0\powershell.exe 
        

        %WINDIR%\SysNative\WindowsPowerShell\v1.0\powershell.exe -Command "$(ProjectDir)Powershell\Stop-AppPool.ps1"
        

        原因被证明是架构的混合,详见here(在“在 Visual Studio 中使用 Windows PowerShell 脚本自动化任务”部分):

        使用 %WINDIR%\SysNative 的虚拟路径和 不是 C:\Windows\System32 的实际路径。这样做的原因是 Visual Studio 2010 是一个 32 位应用程序,需要调用 64位版本的powershell.exe成功加载 Microsoft.SharePoint.Powershell 管理单元。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-08-08
          • 1970-01-01
          • 2018-12-13
          • 2018-12-15
          • 1970-01-01
          • 1970-01-01
          • 2013-11-08
          • 1970-01-01
          相关资源
          最近更新 更多