【问题标题】:Building Projects that reference other class libraries (missing assembly)构建引用其他类库的项目(缺少程序集)
【发布时间】:2016-04-29 21:06:38
【问题描述】:

我正在使用 Visual Studio Team Services 为我的项目配置 CI。解决方案结构如下所示:

+MyApplications
   +.nuget
      NuGet.Config
   +Packages
   +AdminWebApp     ---> ("AdminWebApp" references the class library "AdminClassLib")
   +ClientWebApp    ---> ("ClientWebApp" references the class library "ClientClassLib")
   +AdminClassLib
   +ClientClassLib
   MyApplications.sln

我创建了一个构建定义,用于构建一个 Web 应用程序(管理员)以在稍后阶段发布它。 AdminWeb 构建定义具有以下任务:

->Nugget 安装程序

->Visual Studio 构建

存储库仅映射到“AdminWebApp”。

构建过程失败,出现以下错误:

Error CS0246: The type or namespace name 'AdminClassLib' could not be found (are you missing a using directive or an assembly reference?)
Warning : The referenced project '..\AdminClassLib\AdminClassLib.csproj' does not exist.

在 Visual Studio 中,它构建成功,因为我猜它编译所有项目并构建依赖项。

是否有任何有用的信息可以解释如何使用 Visual Studio Team Services 做到这一点?

【问题讨论】:

    标签: msbuild continuous-integration azure-devops azure-pipelines azure-pipelines-build-task


    【解决方案1】:

    如果没有引用的项目,Team Build 将无法找到构建中未生成的二进制文件。

    它可能是在本地构建的,因为 .csproj 在那里或者二进制文件仍然存在于以前的构建中。

    要么将项目包含在构建工作区中,要么配置 AdminClassLib 构建定义以将其发布为 NuGet 包。您可以使用 VSTEAM 服务的包管理功能来存储您的包。

    然后您可以配置您的 WebUI 以从私有 NuGet 存储库中获取最新版本的 AdminClassLib。

    【讨论】:

    • 谢谢@jessehouwing。我将新映射添加到“AdminClassLib”并成功构建。然而,这将是大量的工作和耗时,因为我将有大量的项目引用至少 6-10 个其他项目。那么,您能否提供一个关于使用包管理的有用链接。
    • 使用 nuget vsarbranchingguide.codeplex.com/releases检查依赖管理
    猜你喜欢
    • 2019-01-03
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    相关资源
    最近更新 更多