在服务器上安装部署 azure 代理失败:System.IO.FileNotFoundException:无法加载文件或程序集 'DotNetAgent,版本 = 1.0.0.0

Installing deployment azure agent on server fails: System.IO.FileNotFoundException: Could not load file or assembly 'DotNetAgent, Version=1.0.0.0

我不知道 SO 是否是这个问题的最佳位置,所以如果你知道更好的位置,请告诉我,我会把它移到那里。

我们在 VPS 上有一个适当的 运行 Azure Devops 部署池 运行 代理。但是我的 PAT 已过期,所以我安装了一个新代理(是的,我知道,我本可以延长我的 PAT 的到期日期,但当时我没有意识到这一点)。

但是当我通过 DevOps 提供的脚本安装代理时,我收到以下错误消息:

System.IO.FileNotFoundException: 无法加载文件或程序集 'DotNetAgent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=87b69d96e75fbfca'。该系统找不到指定的文件。 文件名:'DotNetAgent, Version=1.0.0.0, Culture=neutral, PublicKeyToken=87b69d96e75fbfca'

我已经试过了:

  1. 更新 VPS 上的 MSBuild 工具。
  2. 从 VPS
  3. 中删除所有代理
  4. 从 DevOps 中删除我所有的 PAT,并在 DevOps 中复制脚本时生成一个新的 PAT

编辑 1 添加系统信息

Windows 服务器 2012 R2 64 位

Powershell 引擎版本 4 0 -1 -1(已使用 this

This version detection tool 检测到我安装了这些版本的 asp.net 框架


编辑 2 为正确的答案或引导我找到正确的解决方案增加了赏金

微软网站上说 Starting December 2019, the minimum required .NET version for build agents is 4.6.2 or higher.

您可以检查您的机器上是否安装了 .NET Framework 4.6.2 或更高版本。

请参阅以下安装本地代理的先决条件:

  • Windows 7、8.1 或 10(如果使用客户端 OS)
  • Windows 2008 R2 SP1 或更高版本(如果使用服务器 OS)
  • PowerShell 3.0 或更高版本
  • .NET Framework 4.6.2 或更高版本

查看文档 here 了解更多信息。

PAT 令牌仅在代理安装期间使用。 PAT 过期后,您无需安装新代理。请参阅 Microsoft 文档 here 中的以下注释。

注: 当使用 PAT 作为身份验证方法时,PAT 令牌仅在代理的初始配置期间使用。之后,如果 PAT 过期或需要更新,则代理不需要进一步更改。

更新:

您可以查看此 link 并尝试下载部署代理程序包的不同版本(例如旧版本)。

下载部署代理程序包后,创建一个新文件夹(例如c:/mydeployagent),将程序包解压到该文件夹​​,然后运行 从powershell 命令下;

.\config.cmd --deploymentgroup --deploymentgroupname "your deployment group name" --agent $env:COMPUTERNAME --runasservice --work '_work' --url 'https://dev.azure.com/yourOrganization/' --projectname 'Your project Name'

最终我们无法修复它,也没有在 Microsoft 开发人员的帮助下。他们确实愿意更详细地研究它,但费用非常昂贵,而且不能保证成功。

所以我们最终设置了一个新的 VPS 并将我们所有的应用程序迁移到新的 VPS,现在一切都恢复正常了。就我们和我们使用的 IT 支持机构花费的时间而言,与 Microsoft 想要的只是调查它的报酬相比,这要便宜得多。