Can't create Prism shell
<p>I get the following exception when I try to create the Prism shell:</p>

<blockquote>
  <p>An exception of type
  'Microsoft.Practices.ServiceLocation.ActivationException' occurred in
  Microsoft.Practices.ServiceLocation.dll but was not handled in user
  code</p>
  
  <p>Additional information: Activation error occurred while trying to get
  instance of type MainWindowViewModel, key ""</p>
</blockquote>

<p>This is my Bootstrapper class:</p>

<pre><code> public class Bootstrapper : UnityBootstrapper 
    {
        protected override DependencyObject CreateShell()
        {
            return Container.TryResolve&lt;MainWindow&gt;();

        }

        protected override void InitializeShell()
        {
            Application.Current.MainWindow.Show();
        }
    }
</code></pre>

<p>App class:</p>

<pre><code> public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            Bootstrapper bs = new Bootstrapper(); 
            bs.Run(); 

            bs.Container.RegisterType&lt;ICustomer, Customer&gt;();

        }

    }
</code></pre>

<p>and App.xaml:</p>

<pre><code>&lt;Application x:Class="MVVMPractice2.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&gt;
    &lt;Application.Resources&gt;

    &lt;/Application.Resources&gt;

&lt;/Application&gt;
</code></pre>

<p>VIewModel class:</p>

<pre><code>public class MainWindowViewModel : BindableBase
    {
        //instantiate the model
        public ICustomer customer;

        //property for button click command
        public DelegateCommand UpdateCommand { get; set; }


        //constructor to instantiate the buttons click command
        public MainWindowViewModel(ICustomer customer)
        {
            this.customer = customer;


            UpdateCommand = new DelegateCommand(() =&gt; {customer.CalculateTax();OnPropertyChanged(() =&gt; TaxAmount);}, customer.IsValid);

        }


        //this property maps customer name from model to the view
        public string TxtCustomerName
        {
            get { return customer.CustomerName; }
            set { customer.CustomerName = value; }
        }

        //this property maps amount from model to the view
        public string TxtAmount
        {
            get { return Convert.ToString(customer.Amount); }
            set { customer.Amount = Convert.ToDouble(value); }
        }


        //this property maps and transforms color from model to the view
        public string LblAmountColor
        {
            get
            {
                if (customer.Amount &gt; 2000)
                {
                    return "Blue";
                }
                else if (customer.Amount &gt; 1500)
                {
                    return "Red";
                }
                return "Yellow";
            }
        }

        //this property maps and transforms married from model to the view
        public bool IsMarried
        {
            get
            {
                if (customer.Married == "Married")
                {
                    return true;
                }

                else if (customer.Married == "UnMarried")
                {
                    return false;
                }

                return false;

            }

            set 
            {
                if (value)
                {
                    customer.Married = "Married";
                }

                else
                {
                    customer.Married = "UnMarried";
                }
            }



        }

        //this property maps tax from model to the view
        public string TaxAmount
        {
            get { return Convert.ToString(customer.Tax); }

        }

    }
}
</code></pre>

<p>View XAML:</p>

<pre><code>&lt;Window x:Class="MVVMPractice2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:prism="http://prismlibrary.com/" 
        prism:ViewModelLocator.AutoWireViewModel="True" 
        Title="MainWindow" Height="350" Width="525"&gt;  &lt;!--PRISM POWER--&gt;
    &lt;Grid&gt;
        &lt;Label Content="Customer Name" HorizontalAlignment="Left" Margin="0,0,0,292.8"&gt;&lt;/Label&gt;
        &lt;Label Name="lblName"  HorizontalAlignment="Left" Margin="108,0,0,292.8" Width="37" Content="{Binding TxtCustomerName}"&gt;&lt;/Label&gt;

        &lt;Label Content="Sales Amount" HorizontalAlignment="Left" Margin="0,28,0,264.8"&gt;&lt;/Label&gt;
        &lt;TextBox Name="lblAmount"  HorizontalAlignment="Left" Margin="101,28,0,264.8" Width="44" Text="{Binding TxtAmount}"&gt;&lt;/TextBox&gt;

        &lt;Label Content="Buying Habits" HorizontalAlignment="Left" Margin="0,56,0,236.8"&gt;&lt;/Label&gt;
        &lt;Label Name="lblBuyingHabits" HorizontalAlignment="Left" Margin="108,56,0,236.8" Width="52" Background="{Binding LblAmountColor}"&gt;&lt;/Label&gt;

        &lt;Label Content="Married" HorizontalAlignment="Left" Margin="0,84,0,208.8" Width="62"&gt;&lt;/Label&gt;
        &lt;CheckBox Name="chkMarried" HorizontalAlignment="Left" Margin="102,84,0,208.8" IsChecked="{Binding IsMarried}"&gt;&lt;/CheckBox&gt;

        &lt;Label Content="Tax" HorizontalAlignment="Left" Margin="0,112,0,180.8"&gt;&lt;/Label&gt;
        &lt;TextBlock Name="lblTax" HorizontalAlignment="Left" Margin="108,117,0,175.8" Width="37" Text="{Binding TaxAmount}"&gt;&lt;/TextBlock&gt;

        &lt;Button Name="btnTax" Content="Calculate Tax" Margin="118,158,287.4,123.8" Command="{Binding UpdateCommand}" &gt;&lt;/Button&gt;

    &lt;/Grid&gt;
&lt;/Window&gt;
</code></pre>