与 .Net Core 应用程序和数据库项目的持续集成 (VS2017)

Continuous Integration with .Net Core App and Database Project (VS2017)

我在 VS2017 中有一个 .net Core 应用程序,它在解决方案中也有一个数据库项目。

我想在 Visual Studio Team Services 中设置持续集成以构建和发布应用程序和数据库项目。我已经能够在 Publish Artifacts 中获取数据库项目或应用程序,但无法同时获取它们。我假设我的路径设置错误,但是我尝试过的任何组合都没有运气,而且我能找到的关于同时拥有 .net 核心应用程序和数据库项目构建的文档很少并一起部署。如何在 VSTS 中同时构建和发布 .net 核心应用程序和数据库项目?

下面是我在 VSTS 中针对构建的当前设置。我目前正试图将数据库项目放在一个文件夹 ($(build.artifactstagingdirectory)) 中,并将应用程序放在另一个文件夹中,因为结果是

List of current steps

下面是上图中当前设置的输出


开始:构建

************************************************ *********************************

任务:.NET 核心 描述:使用 dotnet core 命令行构建、测试和发布。 版本:1.0.2

作者:微软公司

"C:\Program Files\dotnet\dotnet.exe" build d:\a\s\DatabaseDeploymentTest.web\DatabaseDeploymentTest.web.csproj --配置发布 Microsoft (R) 构建引擎版本 15.1.1012.6693 版权所有 (C) Microsoft Corporation。版权所有。 DatabaseDeploymentTest.web -> d:\a\s\DatabaseDeploymentTest.web\bin\release\netcoreapp1.1\DatabaseDeploymentTest.web.dll 构建成功。 0 条警告 0 个错误 已用时间 00:00:07.50


完成:构建



开始:构建解决方案 **/*.sln

************************************************ *********************************

任务:MSBuild 描述:使用 MSBuild 构建 版本:1.120.0

作者:微软公司

"D:\a_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824.120.0\ps_modules\MSBuildHelpers\vswhere.exe"-版本[15.0,16.0)-最新-格式json "C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild.0\Bin\msbuild.exe" "d:\a\s\DatabaseDeploymentTest.sln" /nologo /nr:false /dl:CentralLogger,"D:\a_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824.120.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=|SolutionDir=d:\a\s"*ForwardingLogger,"D:\a_tasks\MSBuild_c6c4c611-aa2e-4a33-b606-5eaba2196824.120.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /t:build /p:CmdLineInMemoryStorage=True /p:_MSDeployUserAgent="VSTS_8786b412-4ab0-4ae3-aa96-af0394363b64_build_32_835" 一次构建此解决方案中的项目。要启用并行构建,请添加“/m”开关。 构建于 2017 年 8 月 7 日 6:40:49 下午开始。 节点 1 上的项目 "d:\a\s\DatabaseDeploymentTest.sln"(构建目标)。 验证解决方案配置: 构建解决方案配置 "Debug|Any CPU"。 项目 "d:\a\s\DatabaseDeploymentTest.sln" (1) 正在节点 1(默认目标)上构建 "d:\a\s\DatabaseDeploymentTest\DatabaseDeploymentTest.sqlproj" (2)。 准备构建: 创建目录 "bin\Debug\"。 创建目录 "obj\Debug\"。 核心编译: C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild.0\Bin\Roslyn\csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\mscorlib.dll" /debug+ /debug:full /optimize- /out:obj\Debug\DatabaseDeploymentTest.dll /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset" /subsystemversion:6.00 /target:library /warnaserror- /utf8output "d:\a_temp.NETFramework,Version=v4.5.2.SqlClrAttributes.cs" 使用来自目录的编译器的共享编译:C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild.0\Bin\Roslyn 构建: 创建一个模型来表示项目... 正在加载项目参考... 加载项目文件... 构建项目模型并解决对象相互依赖性... 验证项目模型... 将模型写入 d:\a\s\DatabaseDeploymentTest\obj\Debug\Model.xml... DatabaseDeploymentTest\dbo\Stored Procedures\LoadEmployees.sql(1,1):警告 SQL71558:对象引用 [dbo].[Employees].[HKSEmployeeId] 仅在大小写上与对象定义 [dbo] 不同.[员工].[HKSEmployeeID]。 d:\a\s\DatabaseDeploymentTest\dbo\Stored Procedures\LoadEmployees.sql(1,1,1,1):构建警告 SQL71558:对象引用 [dbo].[Employees].[HKSEmployeeId]仅在大小写上与对象定义 [dbo].[Employees].[HKSEmployeeID] 不同。 [d:\a\s\DatabaseDeploymentTest\DatabaseDeploymentTest.sqlproj] 复制文件到输出目录: 正在将文件从 "obj\Debug\DatabaseDeploymentTest.dll" 复制到 "bin\Debug\DatabaseDeploymentTest.dll"。 DatabaseDeploymentTest -> d:\a\s\DatabaseDeploymentTest\bin\Debug\DatabaseDeploymentTest.dll 正在将文件从 "obj\Debug\DatabaseDeploymentTest.pdb" 复制到 "bin\Debug\DatabaseDeploymentTest.pdb"。 SqlPrepareForRun: DatabaseDeploymentTest -> d:\a\s\DatabaseDeploymentTest\bin\Debug\DatabaseDeploymentTest.dacpac 完成构建项目 "d:\a\s\DatabaseDeploymentTest\DatabaseDeploymentTest.sqlproj"(默认目标)。 项目 "d:\a\s\DatabaseDeploymentTest.sln" (1) 正在节点 1(默认目标)上构建 "d:\a\s\DatabaseDeploymentTest.web\DatabaseDeploymentTest.web.csproj" (3)。 准备构建: 创建目录 "bin\Debug\netcoreapp1.1\"。 创建目录 "obj\Debug\netcoreapp1.1\"。 预计算编译类型脚本: C:\Program 文件 (x86)\Microsoft SDKs\TypeScript.2\tsc.exe --noEmitOnError --listEmittedFiles 编译打字稿: C:\Program 文件 (x86)\Microsoft SDKs\TypeScript.2\tsc.exe --noEmitOnError --listEmittedFiles GenerateTargetFrameworkMonikerAttribute: 跳过目标 "GenerateTargetFrameworkMonikerAttribute" 因为所有输出文件相对于输入文件都是最新的。 核心编译: C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild.0\Bin\Roslyn\csc.exe /noconfig /unsafe- /checked- /nowarn:1701,1702,1705 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE;DEBUG;NETCOREAPP1_1 /reference:C:\Users\buildguest.nuget\packages\microsoft.applicationinsights.aspnetcore.0.0\lib\netstandard1.6\Microsoft .ApplicationInsights.AspNetCore.dll /reference:C:\Users\buildguest.nuget\packages\microsoft.applicationinsights.2.0\lib\netstandard1.5\Microsoft.ApplicationInsights.dll /reference :C:\Users\buildguest.nuget\packages\microsoft.aspnetcore.antiforgery.1.1\lib\netstandard1.3\Microsoft.AspNetCore.Antiforgery.dll /reference:C:\Users\buildguest.nuget\packages\microsoft.aspnetcore.authorization.1.1\lib\netstandard1.3\Microsoft.AspNetCore.Authorization.dll /reference:C:\Users\buildguest.nuget\packages\microsoft.aspnetcore.cors.1.1\lib\netstandard1.3\Microsoft.AspNetCore.Cors.dll /reference:C:\Users\buildguest.nuget\packages\microsoft.aspnetcore.cryptography.internal.. 使用来自目录的编译器的共享编译:C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild.0\Bin\Roslyn GetTypeScriptCopyToOutputDirectoryItems: 将具有 BuildAction=TypeScriptCompile 的项目添加到将由 GetCopyToOutputDirectoryItems 目标填充(与其他 BuildActions 的项目)的相同集合 复制文件到输出目录: 正在将文件从 "obj\Debug\netcoreapp1.1\DatabaseDeploymentTest.web.dll" 复制到 "bin\Debug\netcoreapp1.1\DatabaseDeploymentTest.web.dll"。 DatabaseDeploymentTest.web -> d:\a\s\DatabaseDeploymentTest.web\bin\Debug\netcoreapp1.1\DatabaseDeploymentTest.web.dll 正在将文件从 "obj\Debug\netcoreapp1.1\DatabaseDeploymentTest.web.pdb" 复制到 "bin\Debug\netcoreapp1.1\DatabaseDeploymentTest.web.pdb"。 完成构建项目 "d:\a\s\DatabaseDeploymentTest.web\DatabaseDeploymentTest.web.csproj"(默认目标)。 完成构建项目 "d:\a\s\DatabaseDeploymentTest.sln"(构建目标)。 构建成功。 "d:\a\s\DatabaseDeploymentTest.sln" (构建目标) (1) -> "d:\a\s\DatabaseDeploymentTest\DatabaseDeploymentTest.sqlproj"(默认目标)(2) -> (SqlBuild 目标)-> d:\a\s\DatabaseDeploymentTest\dbo\Stored Procedures\LoadEmployees.sql(1,1,1,1):构建警告 SQL71558:对象引用 [dbo].[Employees].[HKSEmployeeId]仅在大小写上与对象定义 [dbo].[Employees].[HKSEmployeeID] 不同。 [d:\a\s\DatabaseDeploymentTest\DatabaseDeploymentTest.sqlproj] 1 条警告 0 个错误 已用时间 00:00:12.94


完成:生成解决方案 **/*.sln



开始:将文件复制到:$(build.artifactstagingdirectory)

************************************************ *********************************

任务:复制文件 描述:使用匹配模式将文件从源文件夹复制到目标文件夹(匹配模式将只匹配文件路径,而不匹配文件夹路径) 版本:2.117.0

作者:微软公司

找到 0 个文件


正在完成:将文件复制到:$(build.artifactstagingdirectory)



开始:发布

************************************************ *********************************

任务:.NET 核心 描述:使用 dotnet core 命令行构建、测试和发布。 版本:1.0.2

作者:微软公司

"C:\Program Files\dotnet\dotnet.exe" publish d:\a\s\DatabaseDeploymentTest.web\DatabaseDeploymentTest.web.csproj --configuration release --output d:\a\a\DatabaseDeploymentTest.web Microsoft (R) 构建引擎版本 15.1.1012.6693 版权所有 (C) Microsoft Corporation。版权所有。 DatabaseDeploymentTest.web -> d:\a\s\DatabaseDeploymentTest.web\bin\release\netcoreapp1.1\DatabaseDeploymentTest.web.dll


完成:发布



开始:发布工件

************************************************ *********************************

任务:发布构建工件 描述:将构建工件发布到服务器或文件共享 版本:1.120.1

作者:微软公司


异步命令开始:上传工件


正在上传 1 个文件 文件上传成功。 上传 'd:\a\a' 到文件容器:'#/677588/DatabaseDeploymentTest' 将工件 724 与构建 835

相关联

异步命令结束:上传工件



完成:发布工件


在复制文件任务的源文件夹中指定$(build.sourcesdirectory)并在内容中指定**\*.dacpac