2017-02-27 4 views
0

Ich habe ein Trayicon in meiner WPF App. Als ich in Visual Studio debugging, funktioniert es gut: WPF: Image Path funktioniert nicht nach der Veröffentlichung

Aber nachdem ich es veröffentlichte, warf die App eine Ausnahme sagen, dass es den Pfad des Bildes des Trayicon finden könnte. Ich habe viele Ressourcen online gesucht, ich sah viele Lösungen Paket verwenden, aber es scheint Pack nur akzeptieren Uri Variable und der Pfad für Trayicon muss String sein. Ich habe auch versucht, einen Ordner namens Resource unter der Projektlösung zu erstellen und die Imagedatei hinein zu legen. Dies war das gleiche: arbeitete während des Debuggens, aber würde nicht nach der Veröffentlichung funktionieren.

Also basierend auf @WPF Deutschland Vorschlag, löste ich das Pfadproblem nach der Veröffentlichung der App von Clickonce. Wenn ich jedoch eine App-Verknüpfung in den Systemstartordner kopiere, wird das ico in C: \ WINDOWS \ system32 gefunden, was nicht leicht zu umgehen ist, da systems32 normalerweise Administratorrechte benötigt. Irgendeine Idee dafür?

+1

Warum fügen Sie der Resources.resx-Datei Ihres Visual Studio-Projekts kein Symbol hinzu und laden es mit 'ni.Icon = Properties.Resources.Logo'? – Clemens

Antwort

1

Haben Sie überprüft, dass Ihre logo.ico-Datei in den Ausgabepfad kopiert wird?

In VS haben Sie mehrere Optionen, um Ihre Ressourcendateien bereitzustellen.

Erste Option:

Wählen Sie logo.ico Datei in Projektmappen-Explorer und wählen None als Build Action und Copy always bei Copy to Output Directory (bei Dateieigenschaften). Nach dem Kompilieren finden Sie die Datei in einem Unterverzeichnis unserer OutputPath.

Verwendung (wenn logo.ico in Ihren Projekten Wurzel gelegt wird):

ni.Icon = new Icon("logo.ico"); 

andere Option:

Verwenden Resource als Build Action und bauen Sie Ihr Icon mit einem Stream von Resources.logo erstellt ..

+0

Vielen Dank, es funktioniert! Aber es scheint, dass dies nur in C# funktioniert. Wenn ich das logo.ico auch in anderen XAML-Dateien benötige, muss ich das Bild erneut unter einem anderen Namen importieren. Aber trotzdem funktioniert es! – Lolo

Verwandte Themen