27
votes

I have been working on a WPF application using vb.net and I've recently run into a problem.

When I build my code, the build is successful but when it comes to running the code the System.IO.IOexception throws an exception "Cannot locate resource ViewModel/ViewModel/Mainwindow.xaml" The .Xaml windows are located in a folder called ViewModel hence I don't know where the other ViewModel/ViewModel... path is coming from, isn't it supposed to be viewModel/MainWindow.Xaml? I have tried all possible solutions including cleaning up the Project but it doesn't seem to work.

The only solution that seems to work is if I change the StartupUri from StartupUri = "ViewModel\MainWindow.Xaml" TO StartupUri = "...\MainWindow.xaml" but I doubt if that is the right thing to do.

5
Did you try .\ViewModel\MainWindow.xaml? One question, why is a view located in a VM namespace? Doesn't make sence, since the VMs should not be aware of the views.DHN
Yeah but it still does not work. I am not using MVVM The ViewModel Is just a name of a folder like any other, sorry for the confusion there.George
Check your namespaces. The path is determined by the project namespace, not by the folder structure. Its possible you have a class in the folder ViewModel that has the namespace MyApplication.ViewModel.ViewModelRachel
How come when i run the application using Expression Blend it runs just fine? Could anything be wrong with my visual studio?George
I just discovered that there could have been some alteration in my xaml code... i don't know what it was but i moved the .xaml windows out of the folder, renamed the folder and put them back in and voila it worked! Thanks for your suggestions though.George

5 Answers

43
votes

Change the StartupUri="MainWindow.xaml" to StartupUri="FolderName/MainWindow.xaml"

Solved my problem, when I moved my MainWindow to the View Folder

17
votes

In my case I needed to use pack URI syntax to set SrartUpUri property of my App.xaml file to point to a new location of my MainWindow.xaml, as so:

   <Application x:Class="TrafficLights.Controller.App"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                StartupUri="pack://application:,,,/View/MainWindow.xaml">

More on pack URIs here:

http://msdn.microsoft.com/en-us/library/aa970069(v=vs.110).aspx

Hope it helps. Good luck!

6
votes

This happened to me few times - always when I moved MainWindow.xaml to different folder and forgot to update StartupUri in App.xaml.

1
votes

Visual Studio has somehow renamed my MainWindow.xaml to MainWindow(1).xaml, so again I renamed it to MainWindow.xaml

0
votes

I renamed the "Mainwindow.xaml" file to "NameList.xaml" and had not updated the App.xaml file. Once I did that (StartupUri="NameList.xaml"), it was fine.