构建引用其他类库的项目(缺少程序集)

时间:2016-04-29 21:06:38

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

我正在使用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应用程序(admin),以便在以后发布它。 AdminWeb构建定义具有以下任务:

- > Nugget Installer

- > Visual Studio Build

enter image description here

存储库仅映射到“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执行此操作?

1 个答案:

答案 0 :(得分:1)

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

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

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

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