[英]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.