Category Archives: Windows 10 App

MSB3231 – Unable to remove directory

I was trying to build a Universal App by using a TFS build agent. It fails with the following exception:

Microsoft.AppXPackage.Targets(2883,5): error MSB3231: Unable to remove directory “obj\x64\Release\PackageUploadLayout\”. Access to the path denied

I solved that by deleting the PackageUploadLayout directory by a script added to the Pre-Build event of the Visual Studio Project. The script deletes every sub folder of the solution with that name.


cd /d $(SolutionDir)
for /d /r . %%d in (PackageUploadLayout) do @if exist "%%d" rd /s/q "%%d"

Advertisements

Windows.Web.HttpClient and it’s PasswordCredential class

Microsoft is changing the Api to get HTTP content from version to version. Also the type of possible authentication mechanism behind is changing all the time. So in Universal App for Windows 10, Windows Phone or Windows Store 8 or 8.1. the underlying platform for HTTP access is different in several areas.

System.Net.HttpClient

The System.Net.HttpClient from NuGet that is using the different underlying platforms and therefore is making the same problems. To not being totally confused, it is better not to use System.Net and always use the underlying platform directly instead

Windows.Web.HttpClient or HttpWebRequest

It is better to use one these clients.

  • Windows Phone 8: HttpWebRequest
  • Windows 10 and 8.1 should use Windows.Web.HttpClient

Known problems and bugs in Windows.Web.HttpClient or the old HttpWebRequest:

There are some known bugs available but for a lot of them there are work arounds you can use:

If you have any problems by using the included authentication methods (for example: PasswordCredential) you “just” need to do the authentication by your self creating and adding specific request headers.

Hereinafter is a sample showing how these header entries must be used if you need Digest authentication. The sample uses the old HttpWebRequest but you can rewrite the sample to use Windows.Web.HttpClient easily.

DigestFixer

 

“No default or neutral resource given for”…

If you get the warning “No default or neutral resource given for…” you can do the following…

  • Check, if you have the “DefaultLanguage” attribute set in the package.appxmanifest.
  • Check, if you have set the “NeutralResourcesLanguageAttribute” attribute in the AssemblyInfo of all referenced assemblies

[assembly: NeutralResourcesLanguageAttribute("en-US")]

Tagged ,

Hamburger Menu with SplitView in Windows 10 Apps

Download Hamburger Sample Project

I created a sample project to demonstrate using the SplitView to create a hamburger menu for universal app (Windows 10 apps). I found two other samples online and took what I need from them.

Some features shown in this sample:

  • Displaying the back button in the title line
  • IsSelected property for navigation items changes the color
  • Showing an Options item command on bottom and displaying a OptionsControl (also SplitView)
  • Very basic and simple MVVM approach with no additional libraries.
  • Custom coloring through resources
  • Windows 10 mobile switch added by using VisualStateManager

Look at the screen shots

2015-11-17 (3)

Next one is showing the options fly out.

2015-11-17 (2)

This one is showing the back button…

2015-11-17 (4)

Mobile (small window) mode and different coloring

2015-11-18