【问题标题】:Build is successful on my local but not on vsts azure DevOps构建在我的本地成功,但在 vsts azure DevOps 上失败
【发布时间】:2019-09-30 13:45:40
【问题描述】:

我可以在本地成功构建我的项目。当我通过 VSTS 进行时,构建不成功。我收到一条错误消息,指出在我的子项目中找不到 dll。它是 Rapportage.Logic。 Rapportage.Logic 使用了丢失的 dll

有谁知道原因吗?

【问题讨论】:

  • 在文本编辑器中打开实际的项目文件,并确保您的机器没有任何本地硬编码路径。
  • 这个问题有什么更新吗?你解决了这个问题吗?如果没有,请告诉我有关此问题的最新信息吗?
  • 还没有。我不能花时间在这上面。但我会采取你在回答中提到的步骤。我想在那之后它就解决了。然后我会在这里更新它。谢谢。

标签: azure-devops continuous-integration continuous-deployment


【解决方案1】:

大多数时候这种类型的错误归结为:

  1. 在开发人员机器上存在/编辑但未提交的文件(通常是 .csproj 文件)
  2. Visual Studio 构建和 MSBuild 之间的细微差别。

我会尝试以下方法:

  1. 从 Azure DevOps 日志中复制 MSBuild 命令(包含 MSBuild.exe 的行)
  2. 更改命令中的路径以匹配您的开发环境(例如 d:\a\1\sc:\code\myproject
  3. 运行此命令

如果此命令失败并出现与您的构建相同的错误,则问题是 MSbuild 和 Visaul Studio 之间的差异。

如果成功,您很可能错过了一次提交。

【讨论】:

    【解决方案2】:

    在我的本地构建成功,但在 vsts azure DevOps 上构建失败

    这取决于您如何添加 ReportViewer 引用。

    如果您手动添加 ReportViewer 引用,则需要将 ReportViewer 引用添加到解决方案/项目文件夹,然后从该文件夹添加引用。在这种情况下,引用路径不是硬编码路径。此外,您需要将这些/此 ReportViewer 引用添加到源代码管理并提交到 Azure devops repos。

    如果通过 nuget 添加 ReportViewer 引用,则需要添加 nuget restore 任务来恢复那些 nuget 包。我可以看到您正在使用构建日志中的 nuget restore 任务(第二张图片。),但在构建定义中,我没有看到您添加了该任务(第三张,第四张图片。)。因此,请确保在 Azure devops 上构建时已恢复这些包,如果这些 nuget 包已恢复,您可以检查恢复任务。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      相关资源
      最近更新 更多