VSTS构建中的混合目标

时间:2018-01-02 10:18:24

标签: continuous-integration .net-core azure-devops .net-4.6

我们有一个aspnet-core应用程序,它包含多个.net standard库,两个aspnet-core mvc应用程序,以及一个.net framework控制台应用程序。

这些都可以在Visual Studio的解决方案中成功构建,也可以使用msbuild / dotnet build命令单独构建。

我们现在正尝试使用VSTS实现持续集成/构建。

我们发现aspnet-core Web应用程序已成功构建,但.net framework控制台应用程序失败,出现多条错误消息,如下所示:

2017-12-24T07:20:26.4090447Z C:\Program 
Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(1988,5): 
warning MSB3245: Could not resolve this reference. Could not locate the 
assembly "Xxx.Core, Version=1.1.0.0, Culture=neutral, 
processorArchitecture=MSIL". Check to make sure the assembly exists on disk. 
If this reference is required by your code, you may get compilation errors. 
[d:\a\1\s\WinApps\ListBuilder\ListBuilder.csproj]
C:\Program Files\dotnet\sdk\2.0.3\Microsoft.Common.CurrentVersion.targets(1988,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.EntityFrameworkCore, Version=2.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [d:\a\1\s\WinApps\TelemListBuilder\TelemListBuilder.csproj]

控制台应用程序遵循与Web应用程序相同的文件夹结构,但似乎无法找到任何引用的包。

我们的代理队列是Hosted VS2017

我们有两个VSTS任务:来自Restore构建模板的Buildasp.net core

如果我们可以从构建中排除控制台应用程序,我们会很高兴。

1 个答案:

答案 0 :(得分:3)

由于存在一般的.net框架项目和.net核心项目,并且您希望将它们组合在一起,因此需要使用 Visual Studio构建任务

因此,删除 .Net Core Restore .Net Core构建任务并添加N uGet Tool Installer(4.3.0),< strong> Nuget restore 和 Visual Studio Build 任务(Visual Studio版本:最新版或Visual Studio 2017)

如果要在构建期间生成部署包,可以指定MSBuild参数,如下所示:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)"