Получение ошибки при добавлении MergedDictionary в Application.Resources WPF - PullRequest
4 голосов
/ 12 апреля 2011

Я использую MVVM light для создания «быстрого» WPF-приложения для тестирования некоторых веб-сервисов. У меня все приложение работает, но мне нужно добавить свой ResourceDictionary к ресурсам приложений. Когда я добавляю в App.xaml следующее:

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

Я получаю ошибку:

Ошибка 4 Программа '' не содержит статического метода 'Main', подходящего для точки входа

Вся помощь, которую я могу найти по этой ошибке, связана с тем, что для параметра Действия сборки задано значение ApplicationDefinition, и это не проблема.

Любая помощь или руководство будет принята с благодарностью.

ТИА!

Ответы [ 2 ]

10 голосов
/ 03 августа 2012

У меня была такая же ошибка при добавлении чего-либо к ресурсам в App.xaml при изучении MVVM Light Toolkit. Проблема вызвана неправильным объявлением словаря в <Application.Resources> и не связана с набором инструментов MVVM Light.

Словарь ресурсов приложения должен быть примерно таким:

<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 голос
/ 13 апреля 2011

Хм, какая странная ошибка - ваша программа компилируется и запускается до того, как вы добавите раздел словаря слияния в App.xaml?

Возможно, стоит проверить свойства вашего проекта - похоже, у васдля него установлено консольное приложение, которое по умолчанию имеет статический метод main, который является запуском приложения.

Если для него не установлено консольное приложение - его все же стоит проверить для настройки объекта «Автозагрузка» - это можно установить для определенного класса, который снова можно проверить на статический метод main в качестве точки входа.

Точка входа в основном означает первое, что запускается как часть приложения.

HTH, Скотт

...