Visual Studio Copy Local auf Referenz funktioniert nicht

8

Ich habe zwei Unmanaged C ++ - DLLs in einer Lösung namens A und B, und A hat einen Verweis auf B. Ich möchte B.dll in das Anwendungsverzeichnis für A kopieren. Wenn ich auf "Copy Local" in der Referenz klicke Auf der Registerkarte "Framework and References" von A in seinen Projekteigenschaften sieht es so aus, als wäre es auf "true" gesetzt, aber durch Klicken auf "apply" wird der Wert auf "false" zurückgesetzt. Irgendeine Idee, was ist hier?

    
Jason Fry 27.11.2012, 17:43
quelle

3 Antworten

1

Ich weiß, dass es eine Weile her ist, aber ich bin gerade auf dieses Problem gestoßen und habe diese Seite gefunden:

Ссылка

Scheint so, als wäre es ein bekanntes Problem. Sie können umgehen, indem Sie die Projektdatei bearbeiten.

    
Hoop Somuah 19.09.2014 23:06
quelle
0

Ich hatte dieses Problem vor einiger Zeit. Grundsätzlich ist es so, es kopiert also die Datei und setzt sich selbst auf false, um sich davon abzuhalten, es zu kopieren.

    
C_Plus_Plus_Programmer 27.08.2014 01:10
quelle
0

@HoopSomuah Auch wenn Sie den Connect-Fehler umgehen und die Einstellung "Lokal kopieren" beibehalten, kopiert Visual Studio immer noch keine abhängigen Bibliotheken oder DLLs in den Zielordner für A, unabhängig davon, welche Flags Sie für die Referenz festgelegt haben B in Projekt A.

Die nicht verwaltete Referenzverarbeitung in Visual Studio 2015 ist immer noch vermasselt und ich bin mir sicher, dass 2017 genauso schlecht ist.

@JasonFry Wie @HansPassant darauf hingewiesen hat, müssen Sie zu A ein Post-Build-Ereignis hinzufügen, um B.dll in den gleichen Ordner wie A.dll zu kopieren.

Visual Studio bietet keine einfache Möglichkeit, den Pfad zu B.dll aus Projekt A zu erhalten. Daher können wir Projekt B diesen Pfad in eine Textdatei schreiben lassen und dann Projekt A den Pfad aus dieser Textdatei lesen lassen und kopieren Sie B.dll in den gleichen Ordner wie A.dll.

Öffnen Sie die Projekteigenschaften für B und fügen Sie dies als Post-Build-Ereignis hinzu:

%Vor%

fügen Sie in den Projekteigenschaften für A ein Post-Build-Ereignis hinzu:

%Vor%

Wenn Sie ein drittes Projekt C.dll hatten, das ebenfalls in den Ausgabeordner von A kopiert werden muss, fügen Sie den Projekteigenschaften für C ein ähnliches Post-Build-Ereignis hinzu (beachten Sie stattdessen & gt; & gt; von & gt; , damit es an die Textdatei angehängt wird, anstatt sie zu überschreiben):

%Vor%     
Ger O'Donnell 29.04.2017 14:53
quelle