正如標題所暗示的那樣。
我使用了 git rename 命令來更新 JavaScript 檔案的檔案名。然后,這已成功提交到從我的本地機器到 GitHub 的 repo。
然后,此提交會觸發 Azure 管道啟動,但是構建失敗,說明它無法復制有問題的 javascript 檔案,因為找不到它說明舊名稱。這似乎表明 Azure 在開始構建之前沒有拉取最新代碼,是否需要將某些內容添加到管道 yaml 中以強制更新?
trigger:
- master
pr:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
# Run SonarCloud Prep
- task: SonarCloudPrepare@1
inputs:
SonarCloud: 'SonarCloud'
organization: 'myorg'
scannerMode: 'MSBuild'
projectKey: 'myapp'
projectName: 'myappname'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
# Run SonarCloud Analyser
- task: SonarCloudAnalyze@1
# Run SonarCloud Publish
- task: SonarCloudPublish@1
inputs:
pollingTimeoutSec: '300'
[更新]
為了清楚起見,我在上面提到的重命名命令實際上只是 git move 命令。
從那以后,我檢查了回購協議是否在本地和遠程都是最新的。我可以看到該檔案在存盤庫中具有新名稱。盡管選擇了提交并啟動管道作業,Azure 似乎仍然沒有提取或識別此更改。
作為對此的回應,我創建了一個具有舊名稱的虛擬檔案,提交了這個并且 Azure 管道成功了。然后我決定從 git 運行一個洗掉命令來洗掉虛擬檔案,然后再次觸發管道,它也像以前一樣失敗了。
這表明 Azure 在運行 VSBuild 時沒有更新自身。當然這不是一個錯誤,因為我認為無法重命名甚至洗掉存盤庫中的檔案將是整個 Azure 中的一個相當大的問題。
錯誤如下:
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0\Web\Microsoft.Web.Publishing.targets(2672,5):錯誤:復制檔案 Scripts\diarysearch-2.0.11 .js 到 obj\Release\Package\PackageTmp\Scripts\diarysearch-2.0.11.js 失敗。找不到檔案“Scripts\diarysearch-2.0.11.js”。
uj5u.com熱心網友回復:
好的,事實證明這在技術上是一個 Visual Studio 問題。git rename(移動命令)按預期作業,VS 將構建并成功運行該解決方案。但是,由于專案檔案未使用新名稱更新,這就是 Azure 管道失敗的原因。
我不確定 VS 中的專案如何在不更新專案檔案的情況下成功構建,但這似乎是問題的根源。
所以解決方案基本上是從 VS 專案中洗掉并重新添加檔案,然后重新提交。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/533391.html
上一篇:解決客戶端SSH連接錯誤
