Posted on Leave a comment

Application Insights VS2015 failed to add applicationinsights.config

If you ever deal with the problem

nuget package install  failed to add applicationinsights.config

in Visual studio 2015 and Windows 10 you only have to create a file and name it  ApplicationInsights.config with the code below. That’s because vs and nuget cannot create this file in the root folder of your project.

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
  <InstrumentationKey>xxxx</InstrumentationKey>
</ApplicationInsights>

You must enter your specific InstrumentationKey for the application that you have registered through Azure portal for Insights.

The trick is that you must select Build Action as Content and Copy always to output folder

vs2015insights

Posted on 2 Comments

UnauthorizedAccessException C# File.IO Async

I had to upgrade one application and put some extra functionality. So i added an async function that handles a .txt file and edit some fields.

So i used this code

StorageFolder storageFolder = ApplicationData.Current.RoamingFolder;
 storageFile = await storageFolder.CreateFileAsync("file.txt",CreationCollisionOption.ReplaceExisting);
await FileIO.AppendTextAsync(storageFile, "saveSomeText");

 

But i also had a function in MainPage that asynchronously was reading the same file

StorageFolder storageFolder = ApplicationData.Current.RoamingFolder;
StorageFile storageFile;
storageFile = await storageFolder.CreateFileAsync("file.txt",CreationCollisionOption.OpenIfExists);
IList<string> list = await FileIO.ReadLinesAsync(storageFile);

 

Both functions were async so we could not determine when each function was running and which will be executed first.

So when i tried to run the app i came across with UnauthorizedAccessException because both function maybe were trying to access the file the same time. So i have to make one function wait. You can achieve that by many ways. I used the below function.

 

            async void waitsomething()
            {
                await Task.Delay(2000);
            }

 

But i want to execute this code only once. So i used localSettings

                try
                {
                    tempstr = App.localSettings.Values["YOURkey"].ToString();
                }
                catch (NullReferenceException exmas)
                {
                    waitsomething();
                }

 

 

Posted on Leave a comment

Override the default style of an element – Windows 8.1 aps

One simple way to override the default style of an element on Windows Store aps can be done by changing the default styles. So first of all google for those styles and when you find them just edit and paste in

App.xaml

For example i wanted to make a ToggleSwitch Black. So i found all the available styles and i just modified those i wanted. Then in App.xaml you could see that

<Application.Resources>
<SolidColorBrush x:Key="SearchBoxButtonBackgroundThemeBrush" Color="Black" />
<SolidColorBrush x:Key="ToggleSwitchCurtainBackgroundThemeBrush" Color="Black" />
<SolidColorBrush x:Key="ToggleSwitchCurtainDisabledBackgroundThemeBrush" Color="Transparent" />
<SolidColorBrush x:Key="ToggleSwitchCurtainPointerOverBackgroundThemeBrush" Color="Black" />
<SolidColorBrush x:Key="ToggleSwitchCurtainPressedBackgroundThemeBrush" Color="Black" />
</Application.Resources>