Ошибка сборки UWP CI на сервере Azure DevOps 2019

Я настроил UWP CI на внутреннем сервере AzureDevOps 2019, и он выдает следующие ошибки. Я следовал этому как руководству. Может ли кто-нибудь направить меня к успеху?

YAML после конфигурации выглядит следующим образом:

ресурсы: - репо: собственная очередь: имя: Требования по умолчанию: - msbuild - visualstudio

Ваш конвейер сборки ссылается на неопределенную переменную с именем "Parameters.solution". Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке Variables. См. https://go.microsoft.com/fwlink/?linkid=865972 Ваш конвейер сборки ссылается на неопределенную переменную с именем "Parameters.secureFile". Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке Variables. См. https://go.microsoft.com/fwlink/?linkid=865972 Ваш конвейер сборки ссылается на неопределенную переменную с именем buildPlatform. Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке Variables. См. https://go.microsoft.com/fwlink/?linkid=865972. Ваш конвейер сборки ссылается на неопределенную переменную с именем cert.secureFilePath. Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке Variables. См. https://go.microsoft.com/fwlink/?linkid=865972 Ваш конвейер сборки ссылается на переменную BuildConfiguration, которую вы выбрали для настройки во время очереди. Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке "Переменные", а затем выберите параметр, чтобы сделать ее настраиваемой во время очереди. См. https://go.microsoft.com/fwlink/?linkid=865971 переменные: appxPackageDir: '$(build.artifactStagingDirectory)\AppxPackages\' шаги: - задача: NuGetToolInstaller@0 displayName: 'Использовать входы NuGet 4.4.1': versionSpec: 4.4.1

  • задача: NuGetCommand@2 displayName: 'NuGet restore ***.sln' входы: restoreSolution: '$(Parameters.solution)'

  • задача: DownloadSecureFile@1 displayName: 'Загрузить защищенный файл' вводы: secureFile: '$(Parameters.secureFile)'

  • задача: VSBuild@1 displayName: 'Создать решение Main/BoardPACWinApp.sln' входные данные: решение: Main / BoardPACWinApp.sln vsVersion: 16.0

msbuildArgs: '/ p: AppxBundlePlatforms = "$ (buildPlatform)" / p: AppxPackageDir = "$ (appxPackageDir)" / p: AppxBundle = Always /p:UapAppxPackageBuildMode= StoreUpload / p: AppxPackageSigningEntificate: /p:PackageCertificateKeyFile="$(cert.secureFilePath)"'платформа: конфигурация x64: '$(BuildConfiguration)' clean: true msbuildArchitecture: x64

  • задача: PublishBuildArtifacts@1 displayName: 'Опубликовать артефакт: drop' входные данные: PathtoPublish: '$(Build.ArtifactStagingDirectory)\AppxPackages' включено: false

  • задача: AppCenterDistribute@0 displayName: 'Развернуть в Центре приложений Visual Studio' входные данные: symbolsIncludeParentDirectory: false включено: false


Для этой настройки я использовал инструменты сборки VS 2019 16.3 с тестовым сертификатом (BoardPACWinApp_TemporaryKey.pfx) без пароля. Обратите внимание, что я установил VS 2019 на сервере сборки (Windows Server 2019 (сборка ОС 17763.437)), чтобы убедиться, что сборка прошла успешно, и это действительно так. Но когда я пробую то же самое с агентом сборки DevOps, он выдает ошибки.

Аргументы MSBuild:

[команда]"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\amd64\msbuild.exe" "C:\agent_work\4\s\Main\BoardPACWinApp.sln" /nologo /nr:false /dl:CentralLogger,"C:\agent_work_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.146.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundationMsubscribe.com; 1f510b32-fa94-449c-ba47-94b46a5869d0|SolutionDir=C:\agent_work\4\s\Main"*ForwardingLogger,"C:\agent_work_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411.0ersu_modules \ psb-affca411.0persu \ 1.1 Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:AppxBundlePlatforms="x64" /p:AppxPackageDir="C:\agent_work\4\a\AppxPackages\" /p:AppxBundle= Всегда /p:UapAppxPackage StoreUploadMode= /п:AppxPackageSigningEnabled=true /p:PackageCertificateThumbprint="" /p:PackageCertificateKeyFile="C:\agent_work_temp\BoardPACWinApp_TemporaryKey.pfx" /p:platform="x64" /p:configuration="release" /.0Visual" /p:_MSDeployUserAgent="TFS_22ec7900-72ed-4ebd-b5a6-d4ba51a210dd_build_16_0"

Ошибка:

[ошибка]C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(1300,5): Ошибка MSB3816: Загрузка сборки "C:\Windows\ServiceProfiles\NetworkService.nuget\packages\runtime.win7.system.private.uri\4.3.0\runtimes\aot\lib\netcore50\System.Private.Uri.dll"не удалось. System.IO.FileNotFoundException: не удалось загрузить файл или сборку System.Private.CoreLib, Version=4.0.0.0, Culture= нейтральный, PublicKeyToken=b03f5f7f11d50a3a или одну из его зависимостей. Система не может найти указанный файл.

[ошибка]C:\Windows\ServiceProfiles\NetworkService.nuget\packages\runtime.win7.system.private.uri\4.3.0\runtimes\aot\lib\netcore50\System.Private.Uri.dll(0,0): Ошибка MSB3103: недопустимый файл Resx. Ссылка на строку не установлена ​​на экземпляр String. Имя параметра: суффикс

csproj моего приложения:

<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProjectGuid>{F48A0CA8-2DA5-472A-B973-602F1645B32C}</ProjectGuid>
<OutputType>AppContainerExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>com.IronOne.BoardPACWinApp</RootNamespace>
<AssemblyName>BoardPACWinApp</AssemblyName>
<DefaultLanguage>en-US</DefaultLanguage>
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion>10.0.10240.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<PackageCertificateKeyFile>BoardPACWinApp_TemporaryKey.pfx</PackageCertificateKeyFile>
<PackageCertificateThumbprint>9B26FCF3AA71B71D3A1FE446F7002DB921BA5B68</PackageCertificateThumbprint>
<AppxAutoIncrementPackageRevision>False</AppxAutoIncrementPackageRevision>
<WindowsXamlEnableOverview>true</WindowsXamlEnableOverview>
<AppxPackageDir>C:\temp\</AppxPackageDir>
<AppxBundlePlatforms>x86|x64|arm</AppxBundlePlatforms>
<AppxBundle>Always</AppxBundle>
<SccProjectName>SAK</SccProjectName>
<SccLocalPath>SAK</SccLocalPath>
<SccAuxPath>SAK</SccAuxPath>
<SccProvider>SAK</SccProvider>
<AppxSymbolPackageEnabled>True</AppxSymbolPackageEnabled>
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
<AppInstallerUpdateFrequency>0</AppInstallerUpdateFrequency>
<AppInstallerCheckForUpdateFrequency>OnApplicationRun</AppInstallerCheckForUpdateFrequency>
<AppxPackageSigningEnabled>True</AppxPackageSigningEnabled>
<GenerateTestArtifacts>True</GenerateTestArtifacts>
<HoursBetweenUpdateChecks>0</HoursBetweenUpdateChecks>
<AppxPackageSigningTimestampDigestAlgorithm>SHA256</AppxPackageSigningTimestampDigestAlgorithm>

Если вы хотите, чтобы я настроил настройку CI, дайте мне знать, что я сделаю это, и опубликую сообщения об ошибках, которые я получаю. Спасибо.

1 ответ

Я нашел решение. Я оставил свой исходный проект в стороне и добавил новый проект UWP в образец репозитория git, попытался создать решение и получил следующую ошибку.

2019-10-01T12:31:51.4254403Z ##[error]C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\microsoft.net.native.compiler\1.7.6\tools\Microsoft.NetNative.targets(535,5): Error MSB4018: The "ComputeManagedBinaries" task failed unexpectedly. System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd' is denied.

Итак, я проверил доступ к папке "C:\Program Files (x86)\Windows Kits\10\UnionMetadata" и обнаружил

Я добавил полный доступ "Все", и эта ошибка исчезла. Я знаю, что "Все" - не та учетная запись, для которой я должен дать разрешение, но на данный момент я не знаю точное разрешение учетной записи, отсутствующее здесь. (Надеюсь, здесь кто-то восполнит пробел)

Затем я получил следующие ошибки

[ошибка]C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(3545,5): ошибка MSB3021: невозможно скопировать файл "C:\Program Files (x86)\Microsoft SDK\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\Retail\x86\Microsoft.VCLibs.x86.14.00.appx" в "C:\agent_work\" 8\a\AppxPackages\App1_3.51.12.0_Test\Dependencies\x86\Microsoft.VCLibs.x86.14.00.appx". Доступ к пути C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\Retail\x86\Microsoft.VCLibs.x86.14.00.appx запрещен.

2019-10-01T13:10:12.9935017Z ##[ошибка]C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(3545,5): ошибка MSB3021: невозможно скопировать файл "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\Retail\x64\Microsoft.VCLibs.x64".14.00.appx "в"C:\agent_work\8\a\AppxPackages\App1_3.51.12.0_Test\Dependencies\x64\Microsoft.VCLibs.x64.14.00.appx". Доступ к пути C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\Retail\x64\Microsoft.VCLibs.x64.14.00.appx запрещен.

2019-10-01T13:10:13.0014122Z ##[ошибка]C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(3545,5): Ошибка MSB3021: невозможно скопировать файл "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\Retail\ARM\Microsoft.VCLibs.ARM.14.00.appx"в"C:\agent_work\8\a\AppxPackages\App1_3.51.12.0_Test\Dependencies\ARM\Microsoft.VCLibs.ARM.14.00.appx". Доступ к пути C: \ Program Files (x86) \ Microsoft SDKs \ Windows Kits \ 10 \ ExtensionSDKs \ Microsoft.VCLibs \ 14.0. \ AppX \ Retail \ ARM \ Microsoft.VCLibs.ARM.14.00.appx запрещен.

2019-10-01T13:10:13.0015622Z ##[ошибка]C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(3545,5): ошибка MSB3021: невозможно скопировать файл "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\Retail\ARM64\Microsoft.VCLibs.ARM64.14.00.appx"в"C:\agent_work\8\a\AppxPackages\App1_3.51.12.0_Test\Dependencies\ARM64\Microsoft.VCLibs.ARM64.14.00.appx". Доступ к пути C: \ Program Files (x86) \ Microsoft SDKs \ Windows Kits \ 10 \ ExtensionSDKs \ Microsoft.VCLibs \ 14.0. \ AppX \ Retail \ ARM64 \ Microsoft.VCLibs.ARM64.14.00.appx запрещен.

Я пошел в каждую папку и дал разрешение "Все", и все ошибки исчезли.

Проблема, похоже, что я установил UWP SDK после настройки сервера DevOps. Таким образом, какие бы права доступа к папкам ни требовались от агентов DevOps, они не применялись к вновь созданным папкам. Таким образом, агент DevOps не может получить к нему доступ и выдает ошибки.

Надеюсь, это кому-то поможет. Ура!