如何使用 cicd 更新应用程序版本? (点击一次)
How can I update the app version by using cicd? (clickonce)
我们为 WPF 项目使用了 cicd。没关系,但我们有一个大问题。当 cicd 部署 ClickOnce 包时,应用程序的版本没有改变。当我们通过 Visual Studio 手动发布时,应用程序版本会发生变化。这不是很好...
我们将 GitLab 与跑步者一起使用。
你能给些建议吗?
好的。这是我的解决方案...
我更改了 csproj-file 的代码:
<ApplicationRevision>123</ApplicationRevision>
至:
<ApplicationRevision Condition=" '$(ver)' != '' ">$(ver)</ApplicationRevision>
<ApplicationRevision Condition=" '$(ver)' == '' ">123</ApplicationRevision>
之后,我更改了我的 .gitlab-ci.yml 文件:
.myapp-runner:
before_script:
- CHCP 65001
stages:
- build
- cleanup
build_job:
stage: build
only:
- master
script:
- $clickonce_ver = [int]${CI_PIPELINE_IID} + 500
- Write-Host $clickonce_ver
- '& "C:\tools\nuget.exe" restore myapp.sln -ConfigFile "C:\Users\User\AppData\Roaming\NuGet\NuGet.Config" -source "C:\Users\User\.nuget\packages\;https://www.nuget.org/api/v2/"'
- '& "C:\Program Files (x86)\Microsoft Visual Studio19\Community\MSBuild\Current\Bin\msbuild.exe" -m -p:Configuration=Release /target:publish -p:cicd=true -p:ver="$clickonce_ver"'
- '& xcopy .\bin\Release\app.publish\* C:\Publish\ /sy'
- 'move .\bin\Release\app.publish\ .\artifacts\'
artifacts:
expire_in: 1 days
paths:
- .\artifacts\
cleanup_job:
stage: cleanup
only:
- master
script:
- echo "Сlean up"
- Remove-Item -Recurse -Force .\*
一个 CI_PIPELINE_IID 变量取决于 CI 作业的编号。每次启动后,该变量都会增加。
将应用程序包复制到 C:\Publish\ 文件夹。
我们为 WPF 项目使用了 cicd。没关系,但我们有一个大问题。当 cicd 部署 ClickOnce 包时,应用程序的版本没有改变。当我们通过 Visual Studio 手动发布时,应用程序版本会发生变化。这不是很好... 我们将 GitLab 与跑步者一起使用。 你能给些建议吗?
好的。这是我的解决方案...
我更改了 csproj-file 的代码:
<ApplicationRevision>123</ApplicationRevision>
至:
<ApplicationRevision Condition=" '$(ver)' != '' ">$(ver)</ApplicationRevision>
<ApplicationRevision Condition=" '$(ver)' == '' ">123</ApplicationRevision>
之后,我更改了我的 .gitlab-ci.yml 文件:
.myapp-runner:
before_script:
- CHCP 65001
stages:
- build
- cleanup
build_job:
stage: build
only:
- master
script:
- $clickonce_ver = [int]${CI_PIPELINE_IID} + 500
- Write-Host $clickonce_ver
- '& "C:\tools\nuget.exe" restore myapp.sln -ConfigFile "C:\Users\User\AppData\Roaming\NuGet\NuGet.Config" -source "C:\Users\User\.nuget\packages\;https://www.nuget.org/api/v2/"'
- '& "C:\Program Files (x86)\Microsoft Visual Studio19\Community\MSBuild\Current\Bin\msbuild.exe" -m -p:Configuration=Release /target:publish -p:cicd=true -p:ver="$clickonce_ver"'
- '& xcopy .\bin\Release\app.publish\* C:\Publish\ /sy'
- 'move .\bin\Release\app.publish\ .\artifacts\'
artifacts:
expire_in: 1 days
paths:
- .\artifacts\
cleanup_job:
stage: cleanup
only:
- master
script:
- echo "Сlean up"
- Remove-Item -Recurse -Force .\*
一个 CI_PIPELINE_IID 变量取决于 CI 作业的编号。每次启动后,该变量都会增加。
将应用程序包复制到 C:\Publish\ 文件夹。