我已经为我的本地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
你使用哪种构建服务帐户,本地帐户或域帐户或系统帐户?请将构建代理服务器帐户更改为另一个计算机管理员帐户,然后重试。如果仍然无效,请尝试使用“网络服务”帐户运行。 –
也许你可以尝试安装[Manifest Versioning Build Builds扩展](https://marketplace.visualstudio.com/items?itemName=richardfennellBM.BM-VSTS-Versioning-Task&serverKey=null)并使用“.NET .NET Assemblies “在build中设置assemblyinfo.cs文件中的版本的步骤。 –
TFS构建服务器在我们的TFS Windows 2012服务器中属于本地管理员组的成员的域构建代理帐户下运行。另外,Build Agent帐户是域管理员组的成员。我向脚本添加了其他代码,以显示运行脚本的域名和用户名。输出确认脚本由预期的Build Agent帐户运行。当我使用 – MBK