我正在使用TFS2017和本地VSTS构建机开发一个非常庞大的自动化构建系统,我的自定义任务主要是使用PowerShell编写。内联PowerShell任务仅处理500个字符左右,对于大多数任务来说太小了。目前我正在编辑我的PowerShell脚本,检查它,测试运行,读取日志以查找错误,进行更正,再次检查等等。这有点繁琐,我想知道是否有其他选项。我希望在构建过程开发期间避免每次更改脚本时都要检入。是否有像从网络位置执行我的PowerShell任务这样的选项?
PS> . \\server\path\to\your\scriptmcscript.ps1
or use the invocation operator:
& \\server\path\to\your\scriptmcscript.ps1
您可以使用Powershell任务的UNC路径来访问文件。 或者您可以在目标机器上使用Powershell运行它。
但是要注意您的选择。您必须记住,运行脚本的是构建/部署代理。因此,在您的企业网络中运行时一切都很好,因为您的代理可以看到您的UNC路径。
一旦您在网络之外的计算机上使用该代理,您将不得不考虑另一个解决方案,其中可能包括将您的powershell文件保存到像Git或TFVC这样的存储库中,然后将文件下载到您正在运行代理的本地计算机。
这是我唯一可行的方法,使用设置为绕过(仅限进程范围)的执行策略从 .batch 脚本中调用 PowerShell
-NonInteractive = 不提示确认
-NoProfile = 在系统上下文中运行
powershell.exe -NoProfile -ExecutionPolicy Bypass -NonInteractive -Command C:\Users\User\Script.ps1