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"


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.


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.



“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 ,

Hyper-v: “Stopping” and “Turn off” does not work

Today I was not able to completly shutdown a hyper-v virtual machine  keeping a never ending “Stopping..” state. Killing the “Virtual Machine Worker Process” was not possible. After restarting the host machine, the VM was still during stopping… state.

I solved the problem by doing the following.
– Use task manager to end the “Virtual Machine Management Service” task
– In the Hyper-V Manager start the service again
– Now all VM’s seems to be turned off now, but the “Virtual Machine Worker Process” still exists
– Delete the VM in the Hyper-V Manager
– Restart the host machine
– Re add the VM in Hyper-V Manager

Good look 🙂

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


Load Embedded Resource in Portable Class Libraries

Really difficult to find the right snipped…

var assembly = Assembly.Load(new AssemblyName("MyAssemblyName"));
using (var s = assembly.GetManifestResourceStream(@"FullNameSpaceName.MyFile.xml"))
using (StreamReader sr = new StreamReader(s))
string xml = sr.ReadToEnd();
XDocument x = XDocument.Parse(xml);


Windows Ribbon for WinForms in Visual Studio 2015

The same solution is still working for Visual Studio 2015. Please ensure that the registry keys must be changed to support VS 2015.