我正在尝试在Azure DevOps中创建管道,但由于缺少引用而导致编译错误:
[警告] C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Microsoft.Common.CurrentVersion.targets(2110,5): 警告MSB3245:无法解析此引用。找不到 程序集“ ABC”。检查以确保程序集在磁盘上。如果 该引用是您的代码所必需的,您可能会进行编译 错误。
我有一个包含两个项目的VS2017解决方案。
ABC是实际应用
ABC.UnitTests,我在其中添加了一些单元测试(我正在使用MSTest)
当我在本地构建解决方案时,我可以通过以下步骤成功构建:
构建ABC项目=>生成ABC.dll
在ABC.UnitTests项目中将引用添加到ABC.dll
构建整个解决方案=>构建成功
ABC.UnitTests中的.cs文件以这种方式引用该应用程序,并生成上面的警告:
using ABC;
如果我执行一个干净的构建,其中删除了ABC.dll,然后对整个解决方案进行了构建,则会收到相同的MSB3245警告。因此,如果该dll不存在,则该问题在本地可重现。
然后,当我将解决方案上传到Azure DevOps时,请执行以下步骤。
我有一个名称为azure-pipelines.yml的YAML配置文件,该文件引用了托管的2017年代理。
pool: vmImage: 'vs2017-win2016'
替代流程:
答案 0 :(得分:2)
您不应引用注释中提到的任何DLL。
正确的方法是将其称为项目。这样,DLL在构建过程中会自行处理
正确的方法是
References
->(右键单击)Add References
->使用Projects tab
,您可以选择生成DLL(程序集)的项目
您可以参考此SO