2017-04-03 78 views
0

我已经为我的本地TFS 2015构建定义添加了Powershell脚本步骤。该脚本修改AssemblyInfo.cs文件中的程序集版本。运行自定义poweshell脚本时,TFS构建失败

我使用PowerShell ISE中的Build Agent帐户测试了脚本,它工作正常。但是,PowerShell步骤在TFS构建中因访问被拒绝错误而失败。

Build Agent帐户拥有对C:\agent\_work\11\s\source\MyProject\Properties文件夹的完全控制权限。

Get-Content:访问路径'C:\ agent_work \ 11 \ s \ source \ MyProject \ Properties'被拒绝。 在C:\ agent_work \ 11 \ s \ source \ MyProject \ BuildScript \ Update-AssembyInfoFile.ps1:64 char:10 +(Get-Content $ file)| + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:PermissionDenied:(C:\ agent_work ... MyProject \ Properties:String)[Get-Content],未授权 AccessException + FullyQualifiedErrorId:GetContentReaderUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetContentCommand

+0

你使用哪种构建服务帐户,本地帐户或域帐户或系统帐户?请将构建代理服务器帐户更改为另一个计算机管理员帐户,然后重试。如果仍然无效,请尝试使用“网络服务”帐户运行。 –

+0

也许你可以尝试安装[Manifest Versioning Build Builds扩展](https://marketplace.visualstudio.com/items?itemName=richardfennellBM.BM-VSTS-Versioning-Task&serverKey=null)并使用“.NET .NET Assemblies “在build中设置assemblyinfo.cs文件中的版本的步骤。 –

+0

TFS构建服务器在我们的TFS Windows 2012服务器中属于本地管理员组的成员的域构建代理帐户下运行。另外,Build Agent帐户是域管理员组的成员。我向脚本添加了其他代码,以显示运行脚本的域名和用户名。输出确认脚本由预期的Build Agent帐户运行。当我使用 – MBK

回答

0

脚本错误是由于缺少文件路径中的文件名造成的。消息访问路径'C:\ agent_work \ 11 \ s \ source \ MyProject \ Properties'被拒绝有点令人困惑,但它让你知道路径中缺少文件名。错误消息中的路径是文件夹名称而不是文件名。因此,发生错误。

+0

感谢分享。请将答复标记为答案。 –