我确信这是一个微不足道的问题,但这是我似乎无法解决的问题之一。
我将App.xaml中的启动文件从StartupUri="MainWindow.xaml"
更改为下面的代码,希望这就是我需要做的全部。
<Application x:Class="MVVMPrototype.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MVVMPrototype.View.MVVMPrototype.xaml">
<Application.Resources>
</Application.Resources>
然而,我得到以下错误,声明我需要将build属性设置为resource,如下所示。以前它被设置为Page,这与MainWindow.xaml设置的相同。
执行此操作后,我遇到编译器错误,指出当前上下文中不存在InitializeComponent();
。我知道这种情况发生的唯一一次是.cs文件和.xaml文件之间的类/命名空间不同步,但事实并非如此。
我看过StartupUri documentation,但我没有发现它有用。我确信这是我忽略的愚蠢行为。是的,我已经干净并且多次建造了这个项目而没有运气。有谁知道如何解决它?
更新: Seva Titov解决了第一部分问题。但是现在我有一个TargetInvocationException
内部例外System.Security.SecurityException
,下面的图片(如果难以阅读,请在新标签中打开图片):
对于这个的任何想法?
答案 0 :(得分:4)
StartupUri指定相对文件位置,您似乎在文件夹View中有一个文件MVVMPrototype.xaml,因此您的代码应如下所示:
<Application x:Class="MVVMPrototype.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="View/MVVMPrototype.xaml">
答案 1 :(得分:3)
好的,我现在已经知道发生了什么。
正如Seva Titov的回答所指出的,StartupUri的值应为"View/MVVMPrototype.xaml"
。
它在当前上下文中未定义的InitializeComponent();
错误是因为 MVVMPrototype.xaml的属性的构建操作设置为资源,而不是页面。最初我想添加一个新的Window控件解决了这个问题,但事实证明它是一个红色的鲱鱼,因为构建操作被设置为新控件上的页面 - 我认为这是默认设置。
TargetInvocationException
的最后一个错误以及System.Security.SecurityException
的内部异常我通过切换项目属性下的“启用ClickOnce安全设置”来修复 - &gt;安全性以生成 app.manifest 。
这给了我最后的错误,它无法找到清单签名证书,所以我只是取消选中项目属性下的“签署ClickOnce清单” - &gt;签名。
这解决了我的问题。希望它可以帮助别人。请注意,我对部署/发布的知识很少(如果有的话),我不确定最后两个会如何影响这一点。
答案 2 :(得分:0)
在 App.xaml 中
StartupUri="/ProjectName;component/Folder Or Path/File or Page.xaml">