我已经在内部托管的AzureDevOps 2019服务器上配置了一个UWP CI,它失败了,出现了以下错误。我跟踪了这是一个指南。有人能引导我走向成功吗?
YAML在配置后如下所示:
资源:- repo: self queue: name:缺省要求:- msbuild 您的构建管道引用了一个未定义的变量,名为“Parameters.Solutions”。为此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文件创建或编辑生成管道,在Variables选项卡上定义变量,然后选择选项使其在队列时可设置。参见https://go.microsoft.com/fwlink/?linkid=865971变量: appxPackageDir: appxPackageDir步骤:-任务: NuGetToolInstaller@0 displayName:'Use NuGet 4.4.1‘输入: versionSpec: 4.4.1
msbuildArgs:‘/p:AppxBundlePlatform=“$(BuildPlatform)”/p:AppxPackageDir=$(AppxPackageDir)“/p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload /p:AppxPackageSigningEnabled=true /p:PackageCertificateThumbprint="”/p:AppxBundle=Always/p:UapAppxPackageBuildMode=StoreUpload/p:AppxPackageSigningEnabled=true/p:PackageCertificateThumbprint=:x64 configuration:'$(BuildConfiguration)’干净: true msbuildArchitecture: x64
在这个设置中,我使用了VS 2019 16.3构建工具,使用的是没有密码的测试证书(BoardPACWinApp_TemporaryKey.pfx)。请注意,我已经在构建服务器(WindowsServer2019 (OS 17763.437))上安装了VS 2019,以确保构建成功。但是,当我在DevOps构建代理上尝试相同的操作时,它会抛出错误。
MSBuild Args:
命令“C:\Program (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.TeamFoundation.DistributedTask.MSBuild.Logger.dll";”"RootDetailId=1f510b32-fa94-449c-ba47-94b46a5869d0|SolutionDir=C:\agent_work\4\s\Main"*ForwardingLogger,"C:\agent_work_tasks\VSBuild_71a9a2d3-a98a-4caa-96ab-affca411ecda\1.146.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll“/p:AppxBundlePlatforms="x64”/p:AppxPackageDir="C:\agent_work\4\a\AppxPackages\“/p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload /p:AppxPackageSigningEnabled=true /p:PackageCertificateThumbprint=”/p:PackageCertificateKeyFile="C:\agent_work_temp\BoardPACWinApp_TemporaryKey.pfx“//p:_MSDeployUserAgent="TFS_22ec7900-72ed-4ebd-b5a6-d4ba51a210dd_build_16_0“p:platform="x64”/p:configuration=发布“/p:VisualStudioVersion=”16.0
错误:
errorC:\Program (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(1300,5):Error 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=neutral、PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。 errorC:\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文件。字符串引用未设置为字符串的实例。参数名称:后缀
我的应用程序:
<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设置,让我知道我会做,并张贴错误,我正在得到。谢谢。
发布于 2019-10-01 20:12:38
我找到了解决办法。我已经保留了我的原始项目,并添加了一个新的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 (x86)\Windows \10\UnionMetadata“文件夹的访问权限,并找到了
我增加了“每个人”的访问权限,这个错误就消失了。我知道“每个人”不是我应该给予许可的正确的帐户,但目前我不知道在这里丢失的确切帐户权限。(我希望有人能填补这里的空白)
然后我得到了以下错误
errorC:\Program (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\AppxPackage\Microsoft.AppXPackage.Targets(3545,5):错误MSB3021:无法复制文件"C:\Program (x86)\Microsoft \ 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:\程序文件(x86)\Microsoft \Windows的访问。 2019-10-01T13:10:12.9935017Z ##errorC:\Program Files (x86)\Microsoft Visual ##errorC:\Program Error MSB3021:无法将文件"C:\Program (x86)\Microsoft \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:\程序文件(x86)\Microsoft \Windows的访问。 2019-10-01T13:10:13.0014122Z ##errorC:\Program Files (x86)\Microsoft Visual ##errorC:\Program Error MSB3021:无法将文件"C:\Program (x86)\Microsoft \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:\程序文件(x86)\Microsoft \Windows的访问。 2019-10-01T13:10:13.0015622Z ##errorC:\Program Files (x86)\Microsoft Visual ##errorC:\Program Error MSB3021:无法将文件"C:\Program (x86)\Microsoft \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:\程序文件(x86)\Microsoft \Windows的访问。
我去了每个文件夹,并给予“每个人”的许可,所有的错误都消失了。
问题是,在设置DevOps服务器之后,我安装了UWP。因此,无论DevOps代理所需的文件夹权限如何,都不适用于新创建的文件夹。因此,DevOps代理无法访问它,它会抛出错误。
希望这能帮上忙。干杯!
https://stackoverflow.com/questions/58129127
复制