2016-03-22 2 views
0

Ich muss meine WPF Desktop-Anwendung verfügbar machen, um von einer WinForms-Anwendung aus gestartet zu werden.WPF-Anwendung: Fehlende Ressourcen beim Starten von WinForms App

Ich verwende jedoch Steuerelemente von Drittanbietern (z. B. von Telerik), und die Anwendung kann nur gestartet werden, wenn ich dieselben Referenz-DLLs in die WinForms-Anwendung kopiere, die die WPF-App startet.

Die Ausnahme besteht immer darin, dass eine Datei oder abhängige Datei, die mit application.xaml verknüpft ist, nicht gefunden werden kann. Vermutlich wegen der ausführenden Assembly.

Ich darf keine Verweise auf die WinForms-Anwendung hinzufügen, die die WPF-Anwendung startet. Wie kann ich meine WPF-Anwendung zwingen, am richtigen Ort zu suchen?

Es ist hier und auch im Bereich Ressourcen meines Mainwindow, dass das Problem auftritt:

<Application x:Class="Application" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      StartupUri="MainWindow.xaml"> 
<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/Telerik.Windows.Themes.Expression_Dark;component/Themes/System.Windows.xaml" /> 
      <ResourceDictionary Source="/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.xaml" /> 
      <ResourceDictionary Source="/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.Input.xaml" /> 
      <ResourceDictionary Source="/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.Data.xaml" /> 
      <ResourceDictionary Source="/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.Navigation.xaml" /> 
      <ResourceDictionary Source="/Telerik.Windows.Themes.Expression_Dark;component/Themes/Telerik.Windows.Controls.Docking.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

Vielen Dank.

Antwort

1

Ich würde vermuten, dass die Anwendung sucht nach den abhängigen Assemblies in dem Verzeichnis der App, wo es gestartet wird - in der WinForms App-Verzeichnis und wenn nicht gefunden, es wirft einen Fehler. Wenn dies der Fall ist, können Sie sich das Ereignis AssemblyResolve ansehen, um auf die richtige Position der Baugruppen zu zeigen.

+0

Danke für die schnelle Antwort. Dies ist nützlich, um es definitiv zu wissen, aber in diesem Fall könnte die WPF-Anwendung über eine COM-Klasse gestartet werden, so dass ich diese nicht zur Verfügung habe. Ich möchte versuchen, dies während des Konstruktors der WPF-Anwendung erzwingen oder einfach direkt in XAML angeben, wenn möglich. – miriyo