Visual Studio 团队服务构建 asp.net5 应用程序 - 预构建。ps1 无法在自托管代理上运行

Visual Studio Team Services building asp.net5 app - Prebuild.ps1 not working on self hosted agent

this msdn site 我找到了如何使用 Visual Studio Team Services 构建和部署 asp.net5 应用程序到 Azure 的指南。第一步是使用以下 powershell 预构建脚本安装 dnx

    # bootstrap DNVM into this session.
&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}

# load up the global.json so we can find the DNX version
$globalJson = Get-Content -Path $PSScriptRoot\global.json -Raw -ErrorAction Ignore | ConvertFrom-Json -ErrorAction Ignore

if($globalJson)
{
    $dnxVersion = $globalJson.sdk.version
}
else
{
    Write-Warning "Unable to locate global.json to determine using 'latest'"
    $dnxVersion = "latest"
}

# install DNX
# only installs the default (x86, clr) runtime of the framework.
# If you need additional architectures or runtimes you should add additional calls
# ex: & $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -r coreclr
& $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -Persistent

 # run DNU restore on all project.json files in the src folder including 2>1 to redirect stderr to stdout for badly behaved tools
Get-ChildItem -Path $PSScriptRoot\src -Filter project.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 }

当我使用托管代理时,此脚本有效,但是当我想使用自托管代理时,出现以下错误:

out-file : Access to the path 'C:' is denied.
At C:\Users\xy\Desktop\agent\_work\s\Prebuild.ps1:28 char:88
+ ... ject.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 }

我的自托管代理工作地点是 C:\Users\xy\Desktop\agent_work 。 我没有看到那么多的powershell,所以我想请你帮忙。 谢谢。

这是因为默认情况下,您的自建代理 运行 是 "Network Service" 帐户的服务。

要解决此问题,您可以使用具有管理员权限的帐户通过命令将其更改为 运行:

C:\Users\xy\Desktop\agent\Agent\VsoAgent.exe /ChangeWindowsServiceAccount

或者将您的构建代理配置为 运行 交互,然后 运行 作为管理员。

参考这个link了解详情:Run the agent