当前位置: 首页 > 知识库问答 >
问题:

UWP CI 生成在 Azure DevOps 2019 服务器上失败

曹疏珂
2023-03-14

我在内部托管的AzureDevOps 2019服务器上配置了UWP CI,但它失败并出现以下错误。我以此为指南。有人能指导我走向成功吗?

YAML配置如下:

资源: - 存储库: 自队列: 名称: 默认需求: - msbuild - visualstudio

生成管道引用名为“参数”的未定义变量。创建或编辑此 YAML 文件的生成管道,在“变量”选项卡上定义变量。请参阅 https://go.microsoft.com/fwlink/?linkid=865972 生成管道引用了名为“参数.secure文件”的未定义变量。创建或编辑此 YAML 文件的生成管道,在“变量”选项卡上定义变量。请参阅 https://go.microsoft.com/fwlink/?linkid=865972 生成管道引用了名为“buildPlatform”的未定义变量。创建或编辑此 YAML 文件的生成管道,在“变量”选项卡上定义变量。请参阅 https://go.microsoft.com/fwlink/?linkid=865972 生成管道引用名为“cert.secure 文件路径”的未定义变量。创建或编辑此 YAML 文件的生成管道,在“变量”选项卡上定义变量。请参阅 https://go.microsoft.com/fwlink/?linkid=865972 生成管道引用“生成配置”变量,该变量已选择在排队时可设置。创建或编辑此 YAML 文件的生成管道,在“变量”选项卡上定义变量,然后选择该选项以使其在排队时可设置。请参阅 https://go.microsoft.com/fwlink/?linkid=865971 变量: appxPackageDir: “$(build.artifactStageDirectory)\AppxPackages”步骤: - 任务: NuGetToolInstaller@0 显示名称: “使用 NuGet 4.4.1” 输入: 版本规格: 4.4.1

>

  • 任务:NuGetCommand@2displayName:'NuGet恢复***. sln'输入:restoreSolution:'$(Parameters.solution)'

    任务:DownloadSecureFile @ 1 display name:'下载安全文件'输入:secureFile:' $(parameters . secureFile)'

    任务: VSBuild@1 显示名称: '构建解决方案主/主板太平洋应用程序.sln“ 输入: 解决方案: 主/主板太平洋应用程序.sln 与版本: 16.0

    msbuildArgs:“/p:AppxBundlePlatforms = " $(build platform)"/p:AppxPackageDir = " $(AppxPackageDir)"/p:appx bundle = Always/p:UapAppxPackageBuildMode = store upload/p:AppxPackageSigningEnabled = true/p:PackageCertificateThumbprint = " "/p:PackageCertificateKeyFile = " $(cert . securefilepath)" '平台:x64配置:“$(build configuration)' clean:true msbuild architecture:x64

    >

  • 任务:PublishBuildArtifacts@1displayName:“Publish artifact:drop”输入:发布路径:“$(Build.ArtifactStagingDirectory)\AppxPackages”已启用:false

    任务:AppCenterDistribute@0displayName:“部署到Visual Studio App Center”输入:symbolsIncludeParentDirectory:false enabled:false

    对于这个设置,我使用了VS2019 16.3构建工具,它带有一个没有密码的测试证书(BoardPACWinApp_TemporaryKey.pfx)。请注意,我在构建服务器(Windows server 2019(OS build 17763.437))上安装了VS 2019,只是为了确保构建成功,并且确实成功。但当我在DevOps构建代理上尝试相同的操作时,它会抛出错误。

    MSBuild参数:

    [command]" C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Current \ Bin \ amd64 \ MSBuild . exe " " C:\ agent _ work \ 4 \ s \ Main \ boardpacwinapp . SLN "/no logo/NR:false/dl:central logger," C:\ agent _ work _ tasks \ vs build _ 71 a9 a2 d 3-a98a-4c aa-96ab-affca 411 ecda \ 1 . 146 . 0 \ PS _ modules \ MSBuildteam foundation . distributed task . msbuild . logger . dll ";" root detail id = 1f 510 b 32-fa94-449 C-ba47-94b 46 a 5869d 0 | solution dir = C:\ agent _ work \ 4 \ s \ Main " * forwarding logger," C:\ agent _ work _ tasks \ vs build _ 71 a9 a2 d 3-a98a-4 CAA-96ab-affca 411 ecda \ 1 . 146 . 0 \ PS _ modules \ msbuild helpers \ Microsoft。team foundation . distributed task . msbuild . logger . dll "/p:AppxBundlePlatforms = " x64 "/p:AppxPackageDir = " C:\ agent _ work \ 4 \ a \ appx packages \ "/p:UapAppxPackageBuildMode = store upload/p:AppxPackageSigningEnabled = true/p:PackageCertificateThumbprint = " "/p:PackageCertificateKeyFile = " C:\ agent _ work _ temp \ BoardPACWinApp _ temporary key。

    错误:

    [错误]C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\ v16.0\AppxPackage\Microsoft.AppxPackage。目标(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”失败。系统输入输出。FileNotFoundException:无法加载文件或程序集“System.Private”。CoreLib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3'或其依赖项之一。系统找不到指定的文件。

    [错误]C:\Windows\ServiceProfiles\NetworkService.nuget\包\runtime.win7.system.private.uri\4.3.0\runtimes\aot\lib\netcore50\System.Private.Uri.dll(0,0):错误MSB3103:无效的Resx文件。字符串引用未设置为字符串实例。参数名称:后缀

    我的应用程序的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个答案

    酆耀
    2023-03-14

    我找到了解决办法。我已经将我的原始项目放在一边,并向一个示例git repo添加了一个新的UWP项目,并尝试构建解决方案,但得到了以下错误。

    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)\微软视觉工作室\2019\Community\MSBuild\微软\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.targets(3545,5):错误 MSB3021: 无法复制文件“C:\Program Files (x86)\微软 SDK\10\扩展SDKs\微软.VCLibs\14.0.\AppX\Retail\x86\Microsoft.VCLibs.x86.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:\程序文件 (x86)\微软 SDK\Windows 工具包\10\扩展SDKs\微软.VCLibs\14.0.\AppX\零售\x86\微软.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\零售\x64\Microsoft.VCLibs.x64.14.00.appx"到"C:\agent_work\8\a\AppxPackages\App1_3.51.12.0_Test\Dependency\x64\Microsoft.VCLibs.x64.14.00.appx"。访问路径'C:\Program Files(x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\零售\x64\Microsoft.VCLibs.x64.14.00.appx'被拒绝。

    2019-10-01T13:10:13.0014122Z##[error]C:\Program Files(x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\f16.0\AppxPackage\Microsoft.AppxPackage。目标(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.1400.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\零售\ARM64\Microsoft.VCLibs.ARM64.14.00.appx"到"C:\agent_work\8\a\AppxPackages\App1_3.51.12.0\_Test依赖项\ARM64\Microsoft.VCLibs.ARM64.14.00.appx"。拒绝访问路径'C:\Program Files(x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs\14.0.\AppX\零售\ARM64\Microsoft.VCLibs.ARM64.14.00.appx'。

    我去了每个文件夹,给了“每个人”权限,所有错误都消失了。

    问题似乎是我在设置DevOps服务器后安装了UWP SDK。因此,无论 DevOps 代理需要什么文件夹权限,都不会应用于新创建的文件夹。因此,DevOps代理无法访问它,并且会引发错误。

    希望这能帮助到一些人。干杯!

     类似资料:
    • 尝试将我的 Android 应用构建到 APK 时,构建服务器出错且无法构建。但是,在模拟器中,应用程序工作正常,并且我认为错误的类是由编译器创建的(它不是应用程序内部的类之一) 下面是错误日志: -

    • 我在从服务器构建时遇到问题。我的项目是一个使用Netbeans IDE的Android应用程序。当我运行我的应用程序时,一切正常,编译器完全不报告任何错误。但是当我向服务器发送build Netbeans时,我会报告一个成功的构建,但是当我登录到构建服务器时,我看到的是一个构建失败并带有错误日志。 以下是我从生成服务器获得的错误日志: 构建失败/home/ec2 user/android sdk/

    • 问题内容: 使用该插件,我将创建一个文件并基于单击按钮生成下载。我想将文件保存到服务器上,而不是启动下载。因此,当单击按钮时,我希望将文件保存在: 我知道我需要使用将文件发布到服务器。但是,查看文档并没有看到对任何数据类型的支持。 我的代码: 基于此xml文档保存示例,我尝试了以下操作: 这将下载文件而不是保存文件。如何保存文件? 问题答案: 我设法使用来解决此问题,方法如下: upload.ph

    • 我正在运行一个tomcat服务器, 中,我导出如下所示。 < code > JAVA _ OPTS = " $ JAVA _ OPTS-JAVA agent:/opt/jaco co/lib/jaco agent . jar = dest file =/tmp/jaco co . exec,append=true,includes=*" 这将生成jacoco。文件夹中同一台计算机中的exec文件。

    • 我有这样的代码: 而在我的机器上,输出是“123OK!”(不出所料)上传到服务器后,我只得到“12”(意味着创建对象失败?) 我的本地机器运行PHP 5.3.27,而服务器运行5.5.5-1CHL1~PRECISE1

    • 如前所述,许多 Git 服务器都使用 SSH 公钥进行认证。 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。 这个过程在所有操作系统上都是相似的。 首先,你需要确认自己是否已经拥有密钥。 默认情况下,用户的 SSH 密钥存储在其 ~/.ssh 目录下。 进入该目录并列出其中内容,你便可以快速确认自己是否已拥有密钥: $ cd ~/.ssh $ ls a