In this article we are going to see how to retrieve the current application's identity and it's installed location in Windows Store Apps using C#.
In Windows Store Apps, identity consists of several things such as Version, packageId, Publisher, Full Name etc.
Here I use the Package API to retrieve the current application's identity and current package's installed location.
Here is the procedure.
Step 1
Create a new Blank Windows Store Application using C#.
Step 2
In the MainPage.XAML create the following markup.
<Page
x:Class="application_Package_Information.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:application_Package_Information"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid x:Name="Input">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" Margin="0,10,0,0" Grid.Row="0">
<Button x:Name="GetPackage" Content="Get Package" Margin="0,0,10,0" Click="GetPackage_Click"/>
</StackPanel>
<Grid x:Name="Output" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="1">
<TextBlock x:Name="OutputTextBlock" Text="" Grid.Row="0" Style="{StaticResource BasicTextStyle}" HorizontalAlignment="Left" FontSize="25" />
</Grid>
</Grid>
</Grid>
</Page>
Step 3
Here is the code of .cs file.
Add the following namespace to use the API:
using Windows.ApplicationModel;
Get the current Package using the Package API, as in:
Package package = Package.Current;
Get the Installed Location of the Package, as in:
Windows.Storage.StorageFolder installedLocation = Package.Current.InstalledLocation;
Reterive all the identity of the application and show in a textblock, as in:
OutputTextBlock.Text = String.Format("Name: \"{0}\"\n" +
"Version: {1}\n" +
"Architecture: {2}\n" +
"ResourceId: \"{3}\"\n" +
"Publisher: \"{4}\"\n" +
"PublisherId: \"{5}\"\n" +
"FullName: \"{6}\"\n" +
"FamilyName: \"{7}\"\n" +
"IsFramework: \"{8}\"\n"+
"Installed Location: {9}",
packageId.Name,
versionString(packageId.Version),
architectureString(packageId.Architecture),
packageId.ResourceId,
packageId.Publisher,
packageId.PublisherId,
packageId.FullName,
packageId.FamilyName,
package.IsFramework,
installedLocation.Path);
Here is the full code:
using System;
using Windows.ApplicationModel;
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Navigation;
namespace application_Package_Information
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
String versionString(PackageVersion version)
{
return String.Format("{0}.{1}.{2}.{3}",
version.Major, version.Minor, version.Build, version.Revision);
}
String architectureString(Windows.System.ProcessorArchitecture architecture)
{
switch (architecture)
{
case Windows.System.ProcessorArchitecture.X86:
return "x86";
case Windows.System.ProcessorArchitecture.Arm:
return "arm";
case Windows.System.ProcessorArchitecture.X64:
return "x64";
case Windows.System.ProcessorArchitecture.Neutral:
return "neutral";
case Windows.System.ProcessorArchitecture.Unknown:
return "unknown";
default:
return "???";
}
}
void GetPackage_Click(Object sender, RoutedEventArgs e)
{
Package package = Package.Current;
PackageId packageId = package.Id;
Windows.Storage.StorageFolder installedLocation = Package.Current.InstalledLocation;
OutputTextBlock.Text = String.Format("Name: \"{0}\"\n" +
"Version: {1}\n" +
"Architecture: {2}\n" +
"ResourceId: \"{3}\"\n" +
"Publisher: \"{4}\"\n" +
"PublisherId: \"{5}\"\n" +
"FullName: \"{6}\"\n" +
"FamilyName: \"{7}\"\n" +
"IsFramework: \"{8}\"\n"+
"Installed Location: {9}",
packageId.Name,
versionString(packageId.Version),
architectureString(packageId.Architecture),
packageId.ResourceId,
packageId.Publisher,
packageId.PublisherId,
packageId.FullName,
packageId.FamilyName,
package.IsFramework,
installedLocation.Path);
}
}
}
Step 4
Now, run the application and click on the button. You will see all the Package Identity information on the screen.