【问题标题】:Devops: Error CS0234: The type or namespace name 'ApplicationModel' does not exist in the namespace 'Windows'Devops:错误 CS0234:命名空间“Windows”中不存在类型或命名空间名称“ApplicationModel”
【发布时间】:2019-05-16 20:01:51
【问题描述】:

我正在尝试为 Windows 通用示例应用程序 File Access Project 设置构建管道。

管道使用 Azure Pipelines Hosted VS2017 Image

当我在本地 VS 中运行该解决方案时。

Package.appxmanifest 包含

<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10586.0" MaxVersionTested="10.0.17763.0" />

当管道尝试构建时,构建任务日志中会出现以下错误。

Error CS0234: The type or namespace name 'ApplicationModel' 
does not exist in the namespace 'Windows' 
(are you missing an assembly reference?)

YAML 是

resources:
- repo: self
queue:
  name: Hosted VS2017
  demands: 
  - msbuild
  - visualstudio

steps:
- task: NuGetCommand@2
  displayName: 'NuGet restore'


- task: VSBuild@1
  displayName: 'Build solution **\*.sln'

项目在我的机器上是这样的

在哪里

而且它运行正常。

我注意到 Nuget 还原任务的日志没有错误并且确实报告了

2018-12-16T01:27:31.8700773Z Checking compatibility for Microsoft.NETCore.Targets.UniversalWindowsPlatform 5.0.0 with UAP,Version=v10.0 (win10-x86-aot).
2018-12-16T01:27:31.8700831Z Checking compatibility for Microsoft.NETCore.Platforms 1.0.0 with UAP,Version=v10.0 (win10-x86-aot).
2018-12-16T01:27:31.8700878Z All packages and projects are compatible with UAP,Version=v10.0 (win10-x86-aot).

[更新]

查看SDK在我机器上的位置

C:\Program Files (x86)\Windows Kits\10\References\10.0.17763.0\Windows.AI.MachineLearning.MachineLearningContract\1.0.0.0

我想知道 Nuget 是如何知道这一点的。 确实,我想知道为什么它会在路径中加入有关机器学习的东西。

[更新]

按照 Stefan Wick MSFT 的建议,我将版本更改为 17134 (RS4/1803) 而不是 17763 (RS5/1809)

错误改为

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\AppxPackage\Microsoft
.AppXPackage.Targets(3218,5): Error APPX0101: A signing key is required in 
order to package this project. Please specify a PackageCertificateKeyFile or 
PackageCertificateThumbprint value in the project file.
Process 'msbuild.exe' exited with code '1'.
SharedContent\Templates\UWPSDKSampleCPP\ARM\Debug\UWPSDKSampleCPP\AppxManifest.xml(0,0):

Error APPX0501: Validation error. error C00CE169: App manifest validation 
error: The app manifest must be valid as per schema: Line 10, Column 13, 
Reason: 'Microsoft.SDKSamples.$safeprojectname$.CPP' violates pattern 
constraint of '[-.A-Za-z0-9]+'. The attribute 'Name' with value 
'Microsoft.SDKSamples.$safeprojectname$.CPP' failed to parse.
Process 'msbuild.exe' exited with code '1'.
SharedContent\Templates\UWPSDKSampleCS\bin\ARM\Debug\AppxManifest.xml(0,0): 
Error APPX0501: Validation error. error C00CE169: App manifest validation error: 
The app manifest must be valid as per schema: Line 10, Column 13, Reason: 'Microsoft.SDKSamples.$safeprojectname$.CS' violates pattern constraint of '[-.A-Za-z0-9]+'. 
The attribute 'Name' with value 'Microsoft.SDKSamples.$safeprojectname$.CS' failed to parse.
Process 'msbuild.exe' exited with code '1'

【问题讨论】:

  • NuGet 还原步骤的输出是什么?
  • @DanielMann Nuget 任务的日志太大,无法粘贴,但没有错误。
  • 如果您的目标是 17134 (RS4/1803) 而不是 17763 (RS5/1809) 是否有效?代理可能尚未安装 1809 SDK。
  • stackoverflow.com/questions/53807130/… 是一个类似但不相同的问题。
  • @StefanWickMSFT 想写下答案吗?

标签: uwp azure-devops windows-10-sdk


【解决方案1】:

该错误是由于您的应用针对的是 1809 SDK (v17763),由于某些issues,该 SDK 尚未在构建代理上推出。

在代理上推出之前,您有两个选项可以解锁:

  1. 如果您实际上不需要来自 1809 SDK 的任何 API,请以 1803 SDK (v17134) 为目标 - 或
  2. 使用this script 显式安装17763 SDK 依赖项

一旦有关于构建代理的 SDK 推出的更新,我将更新答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多