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

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

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

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

Ваш конвейер сборки ссылается на неопределенную переменную с именем «Parameters.solution». Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке «Переменные». См. https://go.microsoft.com/fwlink/?linkid=865972. Ваш конвейер сборки ссылается на неопределенную переменную с именем Parameters.secureFile. Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке «Переменные». См. https://go.microsoft.com/fwlink/?linkid=865972. Ваш конвейер сборки ссылается на неопределенную переменную с именем buildPlatform. Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке «Переменные». См. https://go.microsoft.com/fwlink/?linkid=865972. Ваш конвейер сборки ссылается на неопределенную переменную с именем cert.secureFilePath. Создайте или отредактируйте конвейер сборки для этого файла YAML, определите переменную на вкладке «Переменные». См. 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.TeamFoundationMSBuildHelpers\Microsoft. 1f510b32-fa94-449c-ba47-94b46a5869d0 | SolutionDir = C: \ agent_work \ 4 \ s \ Main "* ForwardingLogger," C: \ agent_work_tasks \ VSBuild_71a9a2d3-a98a-4caa-96ab-affca411.0percda \ psb-affca411.0ecda \ ps_modules. Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll "/ p: AppxBundlePlatforms =" x64 "/ p: AppxPackageDir =" C: \ agent_work \ 4 \ a \ AppxPackages \ "/ p: AppxBundle = Всегда / p: UapAppxPackage StoreUploadMode = / p: AppxPackageSigningEnabled = true / p: PackageCertificateThumbprint = "" /p:PackageCertificateKeyFile="C:\agent_work_temp\BoardPACWinApp_TemporaryKey.pfx "/ p: platform =" x64 "/ p: configuration =" releaseVers "/ p: configuration =" releaseVers "/ p: configuration =" releaseVers " 16,0 "/ стр: _MSDepl oyUserAgent = "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>

If you want me to tweek my CI setup let me know I'll do and post the errors I'm getting. Thank you.


comment
Вы строили этот проект на сервере напрямую, без использования Azure DevOps? Чтобы мы могли сузить круг вопросов. И согласно журналу ошибок, я вижу, что он ссылается на пакет runtime.win7.system.private.uri, ваш проект создан с помощью VS2015?   -  person Leo Liu-MSFT    schedule 30.09.2019
comment
Да, я установил vs2019 на сервер, собрал вручную, и он работает. Также продукт был заявлен в vs2015, а затем через несколько лет перешел на 2019 год.   -  person SurenSaluka    schedule 30.09.2019
comment
Спасибо за быстрый ответ. Вы проверяли, существует ли на этом сервере пакет runtime.win7.system.private.uri? Если нет, попробуйте добавить аргумент MSBuild /p:VisualStudioVersion=16.0 в аргументы MSBuild в задаче сборки VS, а затем проверьте результат сборки.   -  person Leo Liu-MSFT    schedule 30.09.2019
comment
/p:VisualStudioVersion=16.0 уже находится в аргументах. Однако теперь я получаю другую ошибку. ## [ошибка] C: \ Program Files (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ WindowsXaml \ v16.0 \ 8.2 \ Microsoft.Windows.UI.Xaml.Common.targets (266,5) : Ошибка WMC9999: отказано в доступе. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))   -  person SurenSaluka    schedule 30.09.2019
comment
Чтобы ответить на ваш вопрос в сообщении об ошибке выше, он отображается как NetworkService.nuget, но фактический путь - NetworkService \ .nuget. \ Отсутствует.   -  person SurenSaluka    schedule 30.09.2019
comment
Да, я тоже это заметил. Но я удивлен, что какие настройки / параметры заставят vs искать NetworkService.nuget` paths instead of NetworkService \ .nuget`, не продвинулись, извините.   -  person Leo Liu-MSFT    schedule 30.09.2019
comment
Я больше не получаю эту ошибку, и теперь это просто проблема с отказом в доступе.   -  person SurenSaluka    schedule 30.09.2019
comment
Привет, я очень признателен, если кто-нибудь сможет в ближайшее время дать мне какое-либо представление по этому поводу. Спасибо.   -  person SurenSaluka    schedule 01.10.2019
comment
извините за более поздний ответ. Я был вовлечен в другую ветку. Я проверю как можно скорее. Кстати, если вы создаете новый проект UWP с VS2019, если у вас все еще есть эта проблема?   -  person Leo Liu-MSFT    schedule 01.10.2019
comment
Привет, не беспокойтесь, что опоздали. Я попробую это сделать и очень скоро вернусь к вам.   -  person SurenSaluka    schedule 01.10.2019
comment
Привет, я сделал и получил ошибки. Я загрузил файлы журнала на developercommunity.visualstudio.com/comments/756657/view.html   -  person SurenSaluka    schedule 01.10.2019
comment
@ LeoLiu-MSFT Спасибо за поддержку. Я нашел решение.   -  person SurenSaluka    schedule 02.10.2019


Ответы (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 не может получить к нему доступ и выдает ошибки.

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

person SurenSaluka    schedule 02.10.2019