[英]Easiest/shortest command to run a PowerShell script as a build event in Visual Studio
剛剛開始使用PowerShell。 我在VS的后期構建事件中運行DOS .bat文件,並希望升級到PowerShell。 蝙蝠文件很簡單...... CALL something.bat
。 我嘗試用PowerShell ps1文件做到這一點,我的試錯法讓我得到了以下內容(首先有效的方法......首先嘗試了所有簡單的事情,顯然):
powershell -command "& {(powershell '$(ProjectDir)test.ps1')}"
這是一個速記版本嗎? 我認為真正困擾我的唯一事情是對powershell可執行文件的冗余調用,但這可能只是因為.ps1文件在我的機器上默認打開記事本(我應該保留冗余以便在其他系統上部署所以我' m不依賴於文件類型的默認程序)。 無論如何,如果這里有不必要的冗余,我很想知道。
我是PowerShell的新手,所以任何相關的見解總是受到贊賞。
我沒有檢查任何MSDN,它只是工作:
powershell $(ProjectDir)test.ps1
順便說一句。 不要忘記為PowerShell的兩個版本設置運行權限 - 32位和64位。
我對這里詳細介紹的優雅powershell $(ProjectDir)
解決方案感到滿意,但是在通過WebAdministration的Start-WebAppPool和Stop-WebAppPool啟動/停止IIS App Pool時遇到了問題。
我有更好的成功:
%WINDIR%\SysNative\WindowsPowerShell\v1.0\powershell.exe
即
%WINDIR%\SysNative\WindowsPowerShell\v1.0\powershell.exe -Command "$(ProjectDir)Powershell\Stop-AppPool.ps1"
究其原因竟然是混合架構,詳見這里 (參見“使用Windows PowerShell腳本自動化在Visual Studio中的任務”):
使用%WINDIR%\\ SysNative的虛擬路徑而不是C:\\ Windows \\ System32的實際路徑非常重要。 原因是Visual Studio 2010是一個32位應用程序,需要調用64位版本的powershell.exe才能成功加載Microsoft.SharePoint.Powershell管理單元。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.