我正在使用MVVM灯创建一个“快速”WPF应用来测试一些Web服务。我有整个app runiing但需要将我的ResourceDictionary添加到应用程序资源。当我将以下内容添加到App.xaml时:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/ResourceDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
我收到错误:
错误4程序''不包含适用于入口点的静态'Main'方法
我可以在此错误上找到的所有帮助都与设置为ApplicationDefinition的Build Action有关,这不是问题。
非常感谢任何帮助或指导。
TIA!
答案 0 :(得分:10)
我在学习MVVM Light Toolkit时向App.xaml
中的资源添加任何内容时遇到了同样的错误。问题是由<Application.Resources>
中的错误字典声明引起的,与MVVM Light Toolkit无关。
应用程序的资源字典应该与此类似:
<Application ...>
<Application.Resources>
<ResourceDictionary>
<!-- Global ViewModelLocator -->
<vm:ViewModelLocator x:Key="Locator"
d:IsDataSource="True" />
<ResourceDictionary.MergedDictionaries>
<!-- Global style -->
<ResourceDictionary Source="Skin1.xaml" />
<ResourceDictionary Source="Skin2.xaml" />
<ResourceDictionary Source="Templates1.xaml" />
<ResourceDictionary Source="Templates2.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
通过这种方式,您可以在同一位置使用旧的Locator
密钥获取工作的全局资源字典,并在列出的文件中声明字典中的新密钥。
正在加载的文件如下:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type Button}">
<Setter Property="Height" Value="28" />
<Setter Property="Padding" Value="12,3" />
</Style>
...
</ResourceDictionary>
答案 1 :(得分:1)
多么奇怪的错误 - 在将合并字典部分添加到App.xaml之前,您的程序是否已编译并运行?
可能值得检查项目的属性 - 听起来你可能将它设置为控制台应用程序 - 默认情况下它有一个静态主方法,它是应用程序的开始。
如果它没有设置为控制台应用程序 - 它仍然值得检查启动对象设置 - 这可以设置为一个特定的类,可以再次检查静态主方法作为入口点。
入口点基本上是指作为应用程序的一部分运行的第一件事。
HTH, 斯科特