【问题标题】:Getting error when adding MergedDictionary to Application.Resources WPF将 MergedDictionary 添加到 Application.Resources WPF 时出错
【发布时间】:2011-04-12 17:06:49
【问题描述】:

我正在使用 MVVM light 创建一个“快速”的 WPF 应用程序来测试一些 Web 服务。我有整个应用程序正在运行,但需要将我的 ResourceDictionary 添加到应用程序资源中。当我将以下内容添加到 App.xaml 时:

    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources/ResourceDictionary.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

我得到错误:

错误 4 程序 '' 不包含适合入口点的静态 'Main' 方法

我能找到的关于这个错误的所有帮助都与设置为 ApplicationDefinition 的构建操作有关,这不是问题。

任何帮助或指导将不胜感激。

TIA!

【问题讨论】:

  • 一件事与另一件事完全无关。你的问题出在其他地方。

标签: wpf mvvm mvvm-light


【解决方案1】:

我在学习 MVVM Light Toolkit 时向App.xaml 中的资源添加任何内容时遇到了同样的错误。问题是&lt;Application.Resources&gt;中的字典声明不正确引起的,与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>

【讨论】:

    【解决方案2】:

    嗯,多么奇怪的错误 - 在将合并字典部分添加到 App.xaml 之前,您的程序是否编译并运行?

    检查项目的属性可能很值得 - 听起来您可能将其设置为控制台应用程序 - 默认情况下,它有一个静态 main 方法,它是应用程序的开始。

    如果它没有设置为控制台应用程序 - 它仍然值得检查 Startup 对象设置 - 这可以设置为一个特定的类,它可以再次检查静态 main 方法作为入口点。

    入口点基本上意味着作为应用程序的一部分运行的第一件事。

    HTH, 斯科特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多