2016-03-31 14 views
0

Ich habe ein Projekt mit einer CLI-Anwendung und einer DLL, die eine Abhängigkeit der CLI-Anwendung ist.Inhaltsdatei der Abhängigkeit ist nicht in der Bereitstellung enthalten

Das DLL-Projekt enthält eine native DLL, die mittels P/Invoke verwendet wird. Diese DLL ist als Inhalt markiert. Wenn ich mein Projekt erstelle, wird die DLL in das Ausgabeverzeichnis kopiert und meine Anwendung läuft einwandfrei.

Wenn ich eine ClickOnce-Bereitstellung veröffentlichen. Die DLL ist nicht in dem resultierenden Paket enthalten und meine Anwendung wird nicht ordnungsgemäß ausgeführt.

Antworten auf ähnliche Fragen empfehlen immer die Datei auf Inhalt, die ich bereits habe und die keine Auswirkungen auf das Problem hat. Andere Antworten schlagen vor, um sicherzustellen, dass die Datei im Abschnitt Anwendungsdateien der Veröffentlichungsoptionen enthalten ist, aber die Datei ist dort nicht aufgeführt.

+0

Wenn die Datei nicht im Abschnitt Anwendungsdateien aufgeführt ist, ist das ein Problem. Aktivieren Sie das Kontrollkästchen "Alle Dateien anzeigen" und prüfen Sie, ob Sie es in der Liste finden. Wenn möglich, ändern Sie den Veröffentlichungsstatus in * include *, die Downloadgruppe in * required * und den Hash in *. * –

+0

@MatthewWatson " Zeige alle Dateien "listet nur die' .pdb' Dateien auf. –

Antwort

0

Ich fand Why doesn't ClickOnce in Visual Studio deploy content files from dependent assemblies? und testete vorgeschlagene Lösungen. Keiner von ihnen arbeitete für mich.

Ich erkannte dann, dass das Verhalten wahrscheinlich in einem Visual Studio-Update nach dem Lesen Click-once publish addtional files stopped with VS 2012 gebrochen wurde.

Also, am Ende funktionierte das einzige, was für mich funktionierte, einfach die DLL zu meiner Haupt-CLI-Anwendung hinzuzufügen. Was sehr frustrierend ist.

+0

Wir haben eine Reihe von ClickOnce-Anwendungen, die nicht verwaltete DLLs verwenden und die Dateien automatisch installieren, wenn wir sie dem Projekt hinzufügen. Sie alle funktionieren gut (wir verwenden VS2015, aber es funktioniert auch mit VS2012 und VS2013), also bin ich mir nicht sicher, warum es nicht für Sie funktioniert ... –

+0

@MatthewWatson Es funktioniert gut, wenn die Datei hinzugefügt wird veröffentlichtes Projekt Es funktioniert nicht, wenn die Datei zu einer referenzierten Abhängigkeit hinzugefügt wird. –

+0

Oh! Entschuldigung, ich habe diesen Teil missverstanden. Dann müssen wir es so machen: Wir müssen die DLL explizit zur ClickOnce-Anwendung hinzufügen, wie Sie es tun. –