2009-05-04 8 views
0

Ich habe eine ClickOnce-Lösung mit VS2008 erstellt. Mein Hauptprojekt verweist auf ein anderes Projekt, das COM dll als "Links" bezeichnet.ClickOnce & Referenzen

Wenn ich meine Lösung in VS baue, werden die DLLs aus den anderen Projekten in meinen bin-Ordner verschoben, aber wenn ich das Projekt veröffentliche und starte, werden diese Dateien nicht in meinem lokalen Einstellungen \ Apps \ 2.0 ... Ordner angezeigt.

Ich weiß, dass ich jede dll des anderen Projektes als Referenz meines Haupt Projekt hinzufügen kann, aber mir würde eine sauberere Lösung gefällt ...

Ist es möglich?

Antwort

2

Fügen Sie diese Dateien zuerst direkt zu Ihrem Projekt hinzu. Veröffentlichen> - - Dann gehe Anwendungseigenschaften> Anwendungsdateien

Wählen Sie „Alle Dateien anzeigen“, wenn Sie die Dateien nicht sehen Sie brauchen, und dann setzen ihre veröffentlichen Status auf „Include“ NICHT „Include (Auto)“. Dies ist wichtig oder sie werden nicht hinzugefügt.

Wenn Sie die Dateien aktualisieren, müssen Sie sie entfernen und erneut hinzufügen und ihren Veröffentlichungsstatus erneut festlegen. Dies ist ein kleiner Fehler.

eine frühere Anfrage von mir für weitere Informationen siehe: ClickOnce - Overwriting content files

+0

Ok thx Ich werde jede Datei hinzufügen. Es ist die einfachste Lösung ... – pebg

+1

Was ist der Unterschied zwischen 'Include-Auto' und Include? –

+0

Mit Include-Auto wird Visual Studio entscheiden, ob sie eingeschlossen werden sollen oder nicht. Sie müssen VS erzwingen, um sie mithilfe von 'include' einzuschließen. – TimothyP

0

Sie müssen das Dialogfeld "Anwendungsdateien" auf der Registerkarte "Veröffentlichen" Ihres Projekts öffnen. Von dort aus können Sie den Veröffentlichungstyp (Include, Prerequisite usw.) für jede Ihrer Dateien festlegen.

Wenn es sich um eine nicht verwaltete DLL handelt, müssen Sie die tatsächliche DLL als Datei zu Ihrem Projekt hinzufügen und ihre Build-Aktion als "Daten" markieren. Sie können dann den Veröffentlichungstyp dieser Datei auf Einschließen setzen.

+0

Ok, also muss ich jede COM-DLL zu meinem Hauptprojekt hinzufügen, auch wenn sie bereits in referenzierten Projekten enthalten ist? – pebg

+0

Wenn es tatsächlich als Referenz enthalten ist, müssen Sie lediglich den Veröffentlichungsstatus der Datei in "Include" ändern. Wenn es nicht enthalten ist (wenn Sie Funktionen über Pinvoke verwenden würden), müssten Sie es manuell hinzufügen. –

+0

Auch eine Notiz wie Timothy sagt, müssen Sie möglicherweise "Show All Files" auswählen, um es zu sehen. –

0

ich hatte das gleiche Problem .... und den einzigen Weg, dies zu beheben, nachdem viele Optionen durchliefen, war durch diesen DLLs zu Referenzen hinzufügen.

Es funktioniert, aber ich hoffe, dass es in Zukunft eine sauberere Lösung geben würde.