Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Devops: Error CS0234: The type or namespace name 'ApplicationModel' does not exist in the namespace 'Windows'

I am trying to set up a build pipeline for the Windows Universal Sample Application File Access Project.

The pipeline is using the Azure Pipelines Hosted VS2017 Image

The solution builds when I run it in VS locally.

Package.appxmanifest contains

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

When the pipeline tries to build the following error appears in the build task log.

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

The YAML is

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

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


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

The project looks like this on my machine

project references

Where one reference

Microsoft.UI.Xaml.Markup

And it runs correctly.

I notice the log for the Nuget Restore task has no errors and does report

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).

[Update]

Looking at the location on my machine of the SDK

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

I wonder how Nuget is meant to know about that. Indeed I wonder why it has something about MachineLearning in the path.

[Update]

I changed versions to 17134 (RS4/1803) instead of 17763 (RS5/1809) as suggested by Stefan Wick MSFT

The errors changed to

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'
like image 755
Kirsten Avatar asked Dec 16 '18 00:12

Kirsten


1 Answers

The error is due to the fact that your app is targeting the 1809 SDK (v17763), which has not been rolled out on the build agents yet, due to some issues.

Until it has been rolled out on the agents, you have two options to get unblocked:

  1. Target the 1803 SDK (v17134) if you don't actually need any APIs from the 1809 SDK - or
  2. Use this script to explicitely install the 17763 SDK dependency

I will update the answer once there is an update regarding the SDK rollout to build agents.

like image 84
Stefan Wick MSFT Avatar answered Sep 25 '22 04:09

Stefan Wick MSFT