Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio Azure Devops生成失败警告MSB3245:无法解析此引用_Visual Studio_Azure_Visual Studio 2017_Azure Devops - Fatal编程技术网

Visual studio Azure Devops生成失败警告MSB3245:无法解析此引用

Visual studio Azure Devops生成失败警告MSB3245:无法解析此引用,visual-studio,azure,visual-studio-2017,azure-devops,Visual Studio,Azure,Visual Studio 2017,Azure Devops,我正在尝试在Azure DevOps中创建管道,但由于缺少引用而导致编译错误: [警告]C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): 警告MSB3245:未能解析此引用。找不到 大会“ABC”。检查以确保磁盘上存在程序集。如果 此引用是您的代码所必需的,您可能会得到编译 错误 我有一个包含

我正在尝试在Azure DevOps中创建管道,但由于缺少引用而导致编译错误:

[警告]C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): 警告MSB3245:未能解析此引用。找不到 大会“ABC”。检查以确保磁盘上存在程序集。如果 此引用是您的代码所必需的,您可能会得到编译 错误

我有一个包含2个项目的VS2017解决方案

  • 哪一个是实际应用程序

  • 在这里我添加了一些单元测试(我使用的是MSTest)

  • 当我在本地构建解决方案时,我能够通过以下步骤成功构建:

  • 生成ABC项目=>ABC.dll

  • 将ABC.UnitTests项目中的引用添加到ABC.dll

  • 构建整个解决方案=>构建成功

  • ABC.UnitTests中的.cs文件以这种方式引用应用程序,并生成上述警告:

    using ABC; 
    
    如果在删除ABC.dll的情况下执行干净的生成,然后生成整个解决方案,则会收到相同的MSB3245警告。因此,如果dll不存在,则问题可在本地重现

    然后,当我将解决方案上载到Azure DevOps时,我执行以下步骤

  • 从本地VS2017上载解决方案,并在Azure中创建一个项目
  • 在Azure DevOps中构建项目=>报告的参考问题
  • 我有一个名为azure-pipelines.yml的YAML配置文件,它引用了托管的2017代理

    pool: vmImage: 'vs2017-win2016' 
    
    交替流动:

  • 从本地VS2017上载解决方案,并在Azure中创建一个项目
  • 注释掉sln文件中对ABC.UnitTests项目的引用
  • 创建管道=>buildsuccessful

  • 您不应该引用注释中提到的任何DLL

    正确的方法是将其称为项目。这样,DLL在构建过程中会自行处理

    正确的方法是
    引用
    ->(右键单击)
    添加引用
    ->使用
    项目选项卡
    可以选择生成该DLL(程序集)的项目


    您可以引用此

    这是我在MSTest项目的.csproj中引用主项目的方式..\ABC\bin\Debug\netcoreapp2.1\ABC.dll您不应该这样引用dll。相反,你应该直接引用这个项目,就像是的,就是这样。非常感谢你的帮助,我被困了很久。我已经扩展了我的评论作为答案,请接受。这样也可以帮助其他人