我正在尝试为 WinForms 桌面应用程序创建 Azure DevOps 构建管道,问题是我无法发布应用程序,也无法创建构建工件。
我创建了一个 WinForms 桌面应用程序并尝试在 Azure DevOps 中创建持续集成 (CI) 管道。
我选择了 .NET 桌面模板来配置持续集成 (CI) 管道。它正在恢复 NuGet 并成功构建解决方案。
现在我想发布 WinForms .NET 桌面应用程序并生成构建工件。我已经尝试了以下任务(如https://developercommunity.visualstudio.com/content/problem/337714/can-build-code-but-release-pipeline-says-no-artifa.html 中所述)
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
Run Code Online (Sandbox Code Playgroud)
以下是我完整的 yml 代码:
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- …Run Code Online (Sandbox Code Playgroud) 如何在 azure 构建到发布管道中将变量从构建传递到发布:我们在 CI 管道中有变量 --> 我们必须在发布管道中传递该变量 --> 该变量必须在另一个 yaml 文件中设置。这可能吗?
bash environment-variables build-pipeline azure-devops azure-pipelines-release-pipeline
NPM 版本:8.9.4
npm 版本:6.9.0
我们正在使用带有 windows vs2017 托管代理的 azure devops 构建管道
每 10 次构建中就有 1 次失败并出现以下错误:
verbose stack SyntaxError: Unexpected end of JSON input while parsing near '...st":{"integrity":"sha'
18263 verbose stack at JSON.parse (<anonymous>)
18263 verbose stack at parseJson (C:\npm\prefix\node_modules\npm\node_modules\json-parse-better-errors\index.js:7:17)
18263 verbose stack at consumeBody.call.then.buffer (C:\npm\prefix\node_modules\npm\node_modules\node-fetch-npm\src\body.js:96:50)
18263 verbose stack at <anonymous>
18263 verbose stack at process._tickCallback (internal/process/next_tick.js:188:7)
Run Code Online (Sandbox Code Playgroud)
它无法解析的 JSON 各不相同。
使用 npm ci 代替 op npm install
有一个构建任务,在 npm install 之前删除 npm chache。(npm 缓存清理 --force)
有一个构建任务来改变使用的注册。(配置设置注册表“ …
有没有办法更改构建管道的超时时间,目前管道时间在 60 分钟后结束。我想把它减少到 30 分钟。
我查看了所有组织设置和项目设置,但在 UI 上找不到任何内容
或者它可以从 YAML 设置吗?
我遇到一种情况,我\xe2\x80\x99m 尝试使用生产配置构建我的角度应用程序并部署到多个环境,例如ng build --configuration= product
\n\n这里的工作流程是当我使用上述命令(ng build --configuration=production)构建时,environment.ts 文件被替换为environment.prod.ts
\n\n我在environment.prod.ts中的配置如下,
\n\nexport const environment = {\r\n production: true,\r\n environment: \'Production\',\r\n _webApiHost: \'prodsomename.company.com/api/\',\r\n};Run Code Online (Sandbox Code Playgroud)\r\n我在environmrnt.test.ts中的配置如下,
\n\nexport const environment = {\r\n production: true,\r\n environment: \'Test\',\r\n _webApiHost: \'testsomename.company.com/api/\',\r\n};Run Code Online (Sandbox Code Playgroud)\r\n我对 angular.json 文件的设置如下,
\n\n"configurations": {\r\n "production": {\r\n "fileReplacements": [ {\r\n "replace": "src/environments/environment.ts",\r\n "with": "src/environments/environment.prod.ts"\r\n } ],\r\n "optimization": true,\r\n "outputHashing": "all",\r\n "sourceMap": false,\r\n "extractCss": true,\r\n "namedChunks": …Run Code Online (Sandbox Code Playgroud)build-pipeline azure-devops azure-pipelines-release-pipeline angular8
我正在为几个相互依赖的项目构建一个部署管道.每个构建都会生成一个具有唯一版本号的新版本,该版本号部署到Maven存储库.然后,使用该新版本作为依赖项触发管道中的下游项目,并以类似方式构建.
我需要的是在构建项目之前更改pom.xml(或多模块项目中的所有poms)中的属性值.例如,在下面的代码中,"0.1.200"将更改为"0.1.345"(或者无论最新的内部版本号是什么).使用系统属性不是一种选择,因为更新的pom将部署在Maven存储库中,因此更改必须是持久的.
<properties>
<foo.version>0.1.200</foo.version>
</properties>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${foo.version}</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
是否有一些Maven插件使用一个命令行指令执行此操作?否则我需要编写一个简短的脚本(例如在Ruby中),它解析并更改项目中的所有pom.xml文件.
我的 xUnit 测试在本地运行良好,但无法在 Azure DevOps 上运行。受测试的程序集是 .NET 5.0 程序集,测试程序集也是如此。
检查 VsTest 任务的日志文件,我看到以下内容
测试运行检测到针对不同框架和平台版本构建的 DLL。以下 DLL 与当前设置不匹配,即 .NETFramework、Version=v5.0 框架和 X86 平台。
UnitTests.dll 是为 Framework .NETCoreApp、Version=v5.0 和 Platform AnyCPU 构建的。
Microsoft.TestPlatform.CommunicationUtilities.dll 是为 Framework .NETStandard、Version=v2.0 和 Platform AnyCPU 构建的。
Microsoft.TestPlatform.CoreUtilities.dll 是为 Framework .NETStandard、Version=v2.0 和 Platform AnyCPU 构建的。
Microsoft.TestPlatform.CrossPlatEngine.dll 是为 Framework .NETStandard、Version=v2.0 和 Platform AnyCPU 构建的。
Microsoft.TestPlatform.PlatformAbstractions.dll 是为 Framework .NETCoreApp、Version=v2.1 和 Platform AnyCPU 构建的。
Microsoft.TestPlatform.Utilities.dll 是为 Framework .NETStandard、Version=v2.0 和 Platform AnyCPU 构建的。
Microsoft.VisualStudio.TestPlatform.Common.dll 是为 Framework .NETStandard、Version=v2.0 和 Platform AnyCPU 构建的。
Microsoft.VisualStudio.TestPlatform.ObjectModel.dll 是为 Framework .NETStandard、Version=v2.0 …
我正在尝试使用 DevOps 构建管道和单独的发布管道在我们的 DevOps 服务器上从我们的 Git 存储库部署 Blazor WASM 托管应用程序。
该项目包括一个服务器项目和一个客户端项目(按照 VS 中 Blazor WebAssembly 托管模板创建的标准结构)。
我使用了经典编辑器和 ASP.NET Core 模板并加载了站点,但控制台显示连接到服务器的 HTTP 错误,这让我认为我部署的是客户端项目而不是服务器项目。我很确定是这样,因为我的 Drop 工件包含一个名为 Client.zip 的文件。
我如何更改它以部署服务器应用程序?
(已经有很多关于此的问题,例如here,但没有一个涵盖经典的编辑器方法)
我正在尝试检查我们的构建管道之一中是否有过时的软件包。使事情变得复杂的是,我们使用来自 nuget.org 的包以及来自我们自己的存储库(DevOps 工件提要)的包。这些源在 nuget.config 中配置。包恢复任务成功,没有任何问题:
- task: NuGetCommand@2
displayName: Restore Nuget Packages
inputs:
command: 'restore'
restoreSolution: '**/*.sln'
feedsToUse: 'config'
nugetConfigPath: 'nuget.config'
Run Code Online (Sandbox Code Playgroud)
在此步骤之后,我们安装 dotnet-outdated-tool:
- task: DotNetCoreCLI@2
displayName: install dotnet-outdated-tool
inputs:
command: 'custom'
custom: 'tool'
arguments: 'install dotnet-outdated-tool -g --ignore-failed-sources'
Run Code Online (Sandbox Code Playgroud)
请注意,我们已经在此处添加了 --ignore-failed-sources 选项,否则该工具将无法正确安装,因为它会抱怨我们的提要无法访问,但我们可以通过添加 --ignore-failed-sources 来通过。
接下来,也是关于我的问题的最重要的一步,是我们尝试运行过时的工具来检查过时的软件包:
- task: DotNetCoreCLI@2
displayName: Check outdated packages
inputs:
command: 'custom'
custom: 'outdated'
arguments: '$(pathTosolution)'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Run Code Online (Sandbox Code Playgroud)
对于 nuget.org 中的软件包,这似乎工作正常:
Microsoft.Extensions.DependencyInjection 5.0.0 -> 5.0.1
Microsoft.NET.Test.Sdk 16.7.1 -> 16.9.1
MSTest.TestAdapter 2.1.1 -> 2.2.1
Run Code Online (Sandbox Code Playgroud)
对于我们自己的源中的包,它无法解析最新版本:
Some.Internal.Component …Run Code Online (Sandbox Code Playgroud) 我有一个Azure管道,它构建一个asp-net核心项目,并从中构建一个docker镜像并将其推送到Azure Container Registry.
此管道由azure-pipelines.acr.yml文件构成.我对Deployments分支执行的每个git push操作都会在新的构建中将其转换为我的管道.
在此之前,我有一个CI管道,以便将主分支中的每个新变化集成到我的管道中.
但是,在完成每个构建之后,我必须运行推送到我的容器注册表中的该映像的新实例,并将其部署为新的App服务,所有这些过程都是从Azure门户服务手动完成的.
我一直在阅读,我需要的是使用我的Azure管道执行持续部署.在我azure-pipelines.acr.yml的CI管道工作流程中,执行以下步骤:
pool:
vmImage: 'ubuntu-16.04' # other options: 'macOS-10.13', 'vs2017-win2016'
variables:
buildConfiguration: 'Release'
imageName: 'zcrm365:$(Build.BuildId)'
dockerId: 'zcrm365' # This is my registry name access key
dockerPassword: 'my password' # Password access key
# I should create an environment variables to dockerId and dockerPassword
steps:
# Build a docker image
- script: |
docker build -t $(dockerId)/$(imageName) -f ZAccountSyncService/Dockerfile . # add options to this command to meet your needs
docker …Run Code Online (Sandbox Code Playgroud) continuous-integration azure continuous-deployment build-pipeline azure-resource-manager
build-pipeline ×10
azure-devops ×7
azure-pipelines-release-pipeline ×2
c# ×2
angular8 ×1
azure ×1
bash ×1
blazor ×1
devops ×1
maven ×1
npm-install ×1
nuget ×1
timeout ×1
vstest ×1
winforms ×1
xunit ×1