Build Azure DevOps管道构建失败GAC中缺少DLL引用

Build Azure DevOps管道构建失败GAC中缺少DLL引用,build,azure-devops,jenkins-pipeline,gac,Build,Azure Devops,Jenkins Pipeline,Gac,我们已经将TFS服务器升级到Azure DevOps,我正在为一个解决方案创建管道构建,该解决方案包括3个项目,其中2个编译为DLL和一个web服务。当前生成失败,出现以下错误: > ##[error](XXX).sln\(XXXproject)\XXXpath\XXX.cs(8,30): Error CS0234: The type or namespace name 'Common' does not exist in the namespace > 'XXXX' (are yo

我们已经将TFS服务器升级到Azure DevOps,我正在为一个解决方案创建管道构建,该解决方案包括3个项目,其中2个编译为DLL和一个web服务。当前生成失败,出现以下错误:

> ##[error](XXX).sln\(XXXproject)\XXXpath\XXX.cs(8,30): Error CS0234: The type or namespace name 'Common' does not exist in the namespace
> 'XXXX' (are you missing an assembly reference?)
该行引用了驻留在GAC中的DLL(在另一个解决方案/项目中编译),因此当它尝试构建时,当然找不到它

我研究了错误,其中一个建议是在尝试构建当前解决方案之前,使用下载构建工件任务从其他工件下载参考DLL…但是我不知道下载构建工件任务的目标目录应该是什么,以便我当前的构建将找到它

还是有更好的办法来解决这个问题


谢谢

它是哪个DLL?也许你可以使用NuGet下载它。Shayki,它不是一个系统DLL,它是由我们自己的另一个项目生成的DLL…它必须是该DLL的最新版本…所以我想避免每次更改时都要打包。根据错误会议,正如你所说,缺少一个自定义DLL,然后使用下载构建工件应该是从特定构建获取目标DLL的方法。生成目标DLL的此版本是否与当前版本不同,并且下载版本工件不在当前版本中?如果是这样,请将任务放在当前构建中,以便当前构建可以找到下载的工件,并且您可能需要在上一个构建中发布构建工件任务。如果我误解了什么,请随时告诉我。谢谢杨,我认为您对这种情况有很好的理解…您是正确的,DLL来自一个版本,它被第二个版本引用,但找不到它…我要补充的唯一一点是,第二个版本正在寻找第一个版本中的DLL位于GAC中…第一个版本在后期版本中有一个gacutil.exe命令用于GAC关闭了DLL,但它失败,出现以下错误:“未能将程序集添加到缓存:需要管理员权限才能使用所选选项。请使用管理员命令提示符来完成这些任务。”很抱歉,由于我的假期,很长时间没有响应。正如您在文档中看到的,需要管理员权限,而Azure Devops服务无法提供此权限。您是否可以发布第一次生成的dll并在第二次生成时下载,然后将其复制(复制文件任务)到web服务引用文件夹中,其中存储了所有需要的dll?