我正在尝试使用 Azure DevOps Pipelines 从 GitHub 构建我的 .NET Core 2.1 解决方案。它包含一个 SQL 项目,其 TargetFrameworkVersion 为v4.6.2. 这个项目总是无法构建。
Build FAILED.
/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj : warning NU1503: Skipping restore for project '/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj'. The project file may be invalid or missing targets required for restore. [/home/vsts/work/1/s/MySolution/MySolution.sln]
/home/vsts/work/1/s/MySolution/MyDatabase/MyDatabase.sqlproj(57,3): error MSB4019: The imported project "/usr/share/dotnet/sdk/2.1.403/Microsoft/VisualStudio/v15.0/SSDT/Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
1 Warning(s)
1 Error(s)
Run Code Online (Sandbox Code Playgroud)
如何为构建服务器引用或包含这些目标?它在 VS2017 中构建良好。我花了一天多的时间打猎,找不到关于这个问题的任何信息。
我有两个管道(管道 A 和管道 B)配置为构建和发布,管道 A 触发管道 B 进行部署。
我在管道 A 上定义了变量,并需要在管道 B 上使用它们来进行部署。是否可以在这两个管道之间传递它们?
非常感谢任何线索。
我开始在我的visual studio团队服务帐户上使用私有npm提要,按照他们的指南并添加了一个.npmrc文件
registry=https://ascend-xyz.pkgs.visualstudio.com/_packaging/AscendNPMFeed/npm/registry
always-auth=true
Run Code Online (Sandbox Code Playgroud)
问题是构建管道现在不起作用,因为它需要来自这个私有包的一些包.
告诉npm它可以使用visual studio团队服务上的构建访问令牌进行身份验证的正确设置是什么?
我是否需要设置环境变量,调用npm login或someting作为构建步骤?
azure-pipelines azure-pipelines-release-pipeline azure-artifacts
我正在尝试使用VSTS上的.NET Core 2.0.0 Preview 1构建应用程序,但是在尝试恢复nuget软件包时遇到此错误:
Unable to resolve 'Microsoft.NETCore.App (>= 2.0.0)' for '.NETCoreApp,Version=v2.0'.
有什么解决方法吗?
我们已将dockerized构建代理添加到我们的开发Kubernetes集群中,该集群用于构建应用程序作为Azure Devops管道的一部分。我们基于Github上已弃用的Microsoft / vsts-agent-docker创建了自己的映像。
构建代理使用Docker(DooD)外部的Docker在我们的开发集群上创建映像。
该代理已经运行了好几天,但是有时我们的构建管道中的docker命令偶尔会出现错误:
来自守护程序的错误响应:没有这样的图像:fooproject:ci-3284.2 / usr / local / bin / docker失败,返回码:1
我们意识到构建代理正在创建大量未被删除的图像。有大量的图像阻止了构建代理,并且缺少图像,这可以解释“没有这样的图像”错误消息。
通过使用以下命令在构建管道中添加一个步骤,我们能够使构建代理再次工作:
docker system prune -f -a
Run Code Online (Sandbox Code Playgroud)
但是当然这会删除我们所有的图像,并且每次都必须从头开始构建它们,这会使我们的构建花费不必要的长时间。
我确定这一定是一个已解决的问题,但是我无法找到有关处理随时间推移而被堵塞的dockerized build agent的常规策略的任何文档。对docker和kubernetes陌生,我可能根本不知道我在寻找什么。创建保持清洁和功能并保持缓存的泊坞窗化构建代理的最佳实践是什么?
编辑:一些想法:
编辑2:
我在Github上发现了一个有docker问题的人,似乎正在尝试做与我完全相同的事情。他提出了一个解决方案,描述如下:
我正是试图找出如何在不删除构建依赖项的情况下从自动构建环境中删除“旧”映像的方法。这意味着我不能随年龄而删除,因为nodejs图像可能在数周内不会发生变化,而我的应用程序构建在几分钟之内就一文不值。
docker image rm $(docker image ls --filter reference=docker --quiet)那颗小宝石正是我所需要的。我将存储库名称放在引用变量中(不是最容易解释的)。由于同时标记了内部版本号和最新版本,因此该
docker image rm命令在要保留的图像上失败。我真的不喜欢将守护程序错误用作保护机制,但是它很有效。
尝试按照这些指示进行操作,我已将latest代码应用于该过程中生成的所有内容,然后运行
docker image ls --filter reference=fooproject
如果我尝试删除这些,则会出现以下错误:
来自守护程序的错误响应:冲突:无法删除b870ec9c12cc(必须强制执行)-在多个存储库中引用了图像
这样可以防止最新的文件被删除。但是,这并不是一种干净的方法。肯定有更好的办法?
使用托管 VS2017 代理成功构建后,我尝试使用本地托管代理部署本地托管代理,该代理是使用域帐户设置的,该帐户应具有足够的权限,因为它在本地管理组中。当我在别处挖掘这个问题时,一位用户使用重新安装了他们的代理NTATHORITY\SYSTEM并且它起作用了。
我真的不需要创建或停止\启动网站,只需部署最近的构建工件。
我应该检查哪些权限或应该使用其他任务?
019-04-06T21:03:10.3898646Z 错误(消息:配置错误 2019-04-06T21:03:10.3899503Z
2019-04-06T21:03:10.3899791Z 文件名:redirection.config 2019-04-06T21:03:10.3900026Z 2019-04-06T21:03:10.3900293Z 2019-04-04-03Z 行号:1000293Z 行号:0309:03 -04-06T21:03:10.3900852Z 说明:由于权限不足,无法读取配置文件 2019-04-06T21:03:10.3901076Z 2019-04-06T21:03:10.3901333Z。) 2019-04-06T21:03:10.8135484Z ##[错误]进程“appcmd.exe”以代码“5”退出。
我正在 Azure Devops 管道中运行一些测试,我看到构建代理上出现了一些我在本地无法获得的故障。我正在尝试一些低保真调试,想在任务日志中写一些喋喋不休,但我看不到如何。我试过Console.WriteLine(),Debug.WriteLine()而且Trace.WriteLine()但我没有在日志中看到我的任何消息。
如何写入管道任务日志?
我正在尝试在 Azure DevOps Release Pipeline 上运行迁移。因为我想在每个版本上自动运行我的数据库脚本。我的发布管道没有源代码,我只是编译了 DLL。
当我在本地机器上执行此命令时,它运行成功。如何转换此命令以便我可以将它与 DLL 一起使用。
dotnet ef database update --project MyEntityFrameworkProject --context MyDbContext --startup-project MyStartupProject
entity-framework azure-devops azure-pipelines azure-pipelines-release-pipeline entity-framework-migrations
“下载管道工件”和“下载构建工件”之间有什么区别?应该使用哪一种,什么时候使用?
由于可以在 Azure DevOps 管道中停止单个步骤:
echo "##vso[task.complete result=Succeeded;]DONE"
Run Code Online (Sandbox Code Playgroud)
请参阅:https : //github.com/microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md#task-logging-commands
是否还可以检查条件并根据该条件停止整个管道运行或作业?
附注。我知道,您可以为作业设置条件,但在我的情况下,整个管道是单个作业,由于其他原因,将其拆分为多个作业是没有意义的。
azure-pipelines ×10
azure-devops ×8
azure-pipelines-release-pipeline ×2
build ×2
azure ×1
docker ×1
entity-framework-migrations ×1
iis ×1
kubernetes ×1
sqlproj ×1
xunit ×1