Benutzer können keine ClickOnce-Anwendung installieren. Der Fehler lautet: "Datei NLog.dll ist keine gültige Portable Executable (PE) -Datei." Es funktioniert gut auf meinem Rechner, aber ich habe nLog installiert. Das ist für Client-Rechner nicht möglich. Irgendwelche Ideen wie man das zum Laufen bringt?Bereitstellen von NLog mit einer ClickOnce-Anwendung
Antwort
Wenn Ihre NLOG-Assemblys im GAC bereitgestellt werden, können Sie dies (einfach) nicht in ein ClickOnce-Setup aufnehmen. Versuchen Sie, sie als lokale DLLs bereitzustellen. Wenn dies nicht möglich ist, benötigen Sie ein separates Setup (oder MSI) zum Bereitstellen von NLog.
Überprüfen Sie Ihre Build-Option und stellen Sie sicher, NLog.dll ist in den "Anwendungsdateien" enthalten, so dass es in "Download-Gruppe"/erforderlich ist.
Dies ist wahrscheinlich das Problem, da NLog nur eine andere DLL sein sollte, die Sie einschließen können. Log4Net funktioniert auf diese Weise. –
Danke, aber die DLL wird heruntergeladen, es gibt nur einen Fehler. – Brian
Fügen Sie die DLL Ihrem Projekt hinzu und legen Sie BuildAction = None fest und "Kopieren in Ausgabeverzeichnis" als "nicht kopieren".
Löschen Sie Ihren Verweis auf NLog in Ihrem Projekt. Fügen Sie die Referenz erneut hinzu und zeigen Sie sie auf die DLL, die Sie gerade zum Projekt hinzugefügt haben. Setzen Sie für die Eigenschaften der Referenz "Copy local" auf "true".
Wenn Sie nun die Anwendung ausführen, wird auf die lokale Version verwiesen. Wenn Sie die Anwendung bereitstellen, wird die lokale Version bereitgestellt und auf sie verwiesen.
Dies funktioniert für viele DLLs von Drittanbietern, aber nicht alle. Das Beste ist, es auszuprobieren.
Danke, aber die DLL wird heruntergeladen, es gibt nur einen Fehler. – Brian
Wie wird in Ihrem Projekt darauf verwiesen? Ich werde mein Gedächtnis ausgraben müssen, ich erinnere mich an etwas über den tragbaren Ausführungsfehler ... Sie haben Ihr Projekt geändert, um es so zu referenzieren, wie ich es hier gesagt habe? – RobinDotNet
Hier ist ein Beitrag aus dem MSDN-Forum - sehen Sie, ob Ihnen das überhaupt hilft: http://social.msdn.microsoft.com/forums/en-US/winformssetup/thread/dc47dac1-6eb2-4533-a119-c1d87a36c4a5/ – RobinDotNet
Ich habe alle NLOG-Konfigurationsdaten in die App.config-Datei anstelle der NLOG.config-Datei und es funktionierte für mich nach der Bereitstellung mit ClickOnce auch. Keine Fehler und die Protokollierung funktionierte für die bereitgestellte Anwendung.
Funktioniert auch für mich. – Pat
Ich habe die Antwort auf dieses Problem gefunden, wenn Ihr NLog.config
nicht in Ihr Programm kopiert wird, wenn es mit ClickOnce
installiert wird.
Sie benötigen die NLog.config
Datei in Ihrem Project
mit Solution Explorer
wählen und setzen Sie den Properties
wie folgt:
- Build Action: Content
- kopieren Ausgabeverzeichnis: Kopieren immer
Wenn Sie jetzt mit ClickOnce
bereitstellen, sollten die Dateien b Auch kopiert! :)
- 1. NLog protokolliert nicht mit ClickOnce
- 2. Falsche Konfiguration von NLog?
- 3. Ninject Logger mit NLog
- 4. NLog Speicherzielfehler
- 5. Bereitstellen einer Website von Subversion
- 6. Wo ist $ {basedir} mit NLog?
- 7. Kombination von NLog und log4net
- 8. mit AppData Lage in NLog
- 9. Injektion NLog mit AutoFac RegisterGeneric
- 10. von log4net zu NLog weiterleiten
- 11. (SEH) Ausnahme Initialisierung von Nlog
- 12. NLog: Format Loglevel mit Whitespaces
- 13. Bereitstellen einer Umbraco-Site mit Visual Studio
- 14. NLog automatische Abschneiden Nachrichten
- 15. Mehrere NLog-Ereignisse mit einer einzigen ASP.NET-Anforderung verknüpfen
- 16. Bereitstellen von Webpart mit Feature
- 17. Bereitstellen von Schienen mit Passagier
- 18. Bereitstellen mit JRebel von IntellijIDEA
- 19. Bereitstellen von Pylons mit uWSGI
- 20. Bereitstellen von System.Net.Http.dll mit ClickOnce
- 21. Bereitstellen von Meteor mit Forever
- 22. Bereitstellen von Modulen in einer Webanwendung
- 23. F # NLog Konfigurationsdatei
- 24. Bereitstellen von PDBs in einer Azure-Webrolle
- 25. Bereitstellen einer Silverlight-Site
- 26. Hinzufügen Methodenname in NLog
- 27. Bereitstellen von C# -Projekt auf einer Website mit IIS 6.0
- 28. Bereitstellen von statischem HTML in Rails mit einer Layoutdatei
- 29. Bereitstellen von Windows Forms-Anwendungen mit einer einzigen exe
- 30. Funktionstest basierend auf der Ausgabe von nlog
Um die Antwort von Henk weiterzuleiten, sollte die nlog-Installation eine nicht-GACed-DLL irgendwo enthalten haben, die Sie verwenden können, oder Sie können eine von ihrer Site herunterladen (oft in einer Zip-Datei anstelle des Installers). –
Wir verwenden NLog auch hier ohne (zu viele) Probleme, aber unsere DLLs werden lokal mit der Anwendung bereitgestellt. – Newtopian