Uri uri = новый Uri ("psCom; component / Resources / Images.xaml", UriKind.Relative); использует старую версию Images.xaml - PullRequest
0 голосов
/ 07 февраля 2020

все,

уже нашли много информации здесь, теперь пришло время для первого собственного вопроса:

Я создал DLL в Visual Studio 2019, которая, например, предоставляет изображения как ресурс. Я хочу получить доступ к нему в приложении WPF. Это хорошо работает с XAML, и все изображения видимы:

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/psCom;component/Resources/Images.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</Window.Resources>

Но теперь я хочу запустить приложение из другого приложения, чтобы я мог дать объект в качестве параметра.

public partial class App : Application
{
    private object Test
    public App(object Test)
    {
        this.Test = Test;
        this.Run();
    }
}

Если я это сделаю, вдруг последние добавленные изображения больше не будут в словаре. Похоже, что Images.xaml, который вызывается здесь, около двух месяцев.

Когда я создаю Uri в коде,

Uri uri = new Uri("myDll;component/Resources/Images.xaml", UriKind.Relative);
Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary { Source = uri });

, я также вижу, что MergedDictionares [0 ]. Ключи не содержат более новые образы.

Возможно ли, что Visual Studio использует здесь неправильную версию библиотеки DLL (например, из резервной или тестовой установки)? Я несколько раз чистил и перестраивал проект WPF.

Большое спасибо, Маркус

1 Ответ

0 голосов
/ 12 февраля 2020

Теперь я сам нашел ошибку. Из-за изменения структуры каталогов путь к dll в ссылках больше не был правильным.

Но я не знаю, почему это работало в XAML. Я также нахожу очень удивительным, что Visual Studio не сообщает об ошибке здесь, но, кажется, случайным образом использует другую версию DLL.

Я также обнаружил, что лучше иметь два проекта в одном решение. Тогда доступ будет проще и безопаснее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...