Verknüpfte Visual Studio-Dateien sind nicht vorhanden

In Visual Studio können Sie dies tunAdd ->Existing Item und dannAdd as Link von demAdd Dropdown-Schaltfläche.

Das ist toll. Auf diese Weise können Sie eine Datei aus einem anderen Projekt hinzufügen und durch Bearbeiten der Datei auch im ursprünglichen Projekt bearbeiten.

Ich möchte diese Funktion verwenden, um eine Konfigurationsdatei (mit dem Namen Shared.config) in allen Projekten innerhalb einer Lösung vorhanden zu haben. Und diese Datei muss immer gleich sein.

Lösung
|
| - Projekt 1
|- Shared.config [physisch]
| - Projekt 2
|- Shared.config [verknüpft]

Nach dem Veröffentlichen endet die Datei in der Tat in allen veröffentlichten Projekten, also kein Problem.

VOR dem Veröffentlichen (während der Entwicklung beim Erstellen) ist die verknüpfte Datei jedoch nicht wirklich vorhanden. Wenn Sie versuchen, die Datei im Windows-Explorer anzuzeigen, befindet sich die Datei nicht im Projektverzeichnis. In Visual Studio sieht es nur so aus, als ob es dort im Projektmappen-Explorer vorhanden wäre. (Obwohl beim Erstellen, werden verknüpfte Elemente wahrscheinlich in die kopiertbin Verzeichnis; Ich möchte aber keine / access-Dateien von derbin Verzeichnis.)

Jetzt gibt es natürlich Probleme. Versucht auszudruckenSystem.IO.File.ReadAllText(HttpContext.Current.Server.MapPath("Shared.config")) schlägt fehl, bevor das Projekt veröffentlicht wurde, da Shared.config noch nicht im Projektstammverzeichnis vorhanden ist.

Was ich gerne machen würde und wo ich deine Hilfe brauche, ist:

Ich möchte ON BUILD alle verknüpften Dateien von ihrem ursprünglichen Speicherort an ihren Zielspeicherort kopieren.

Dadurch wird Visual Studio veranlasst, dass die verknüpfte Datei und eine Kopie des Originals in demselben Verzeichnis mit demselben Namen vorhanden sind.

Normalerweise können Sie in VS kein verknüpftes Element in einem Verzeichnis erstellen, wenn dieses Verzeichnis bereits eine Datei mit demselben Namen enthält.

Aber ich habe getestet, indem ich zuerst ein verknüpftes Element erstellt habe. Kopieren Sie dann die Originaldatei mit Windows Explorer in das Zielverzeichnis, und sehen Sie, dass Visual Studio ordnungsgemäß funktioniert. Der Lösungsexplorer blendet einfach die physische Datei aus und zeigt stattdessen das verknüpfte Element an. (Auch wenn Sie klickenShow all files im Lösungsexplorer.)

Lösung
|
| - Projekt 1
|- Shared.config [physisch]
| - Projekt 2
|- Shared.config [verknüpft]
|- Shared.config [physisch, während des Builds hierher kopiert, für den Solution Explorer unsichtbar]

Genau das will ich! Wenn Sie versuchen, die Datei zu bearbeiten, öffnet Visual Studio das verknüpfte Element. Beim Erstellen wird eine physische Datei in das Zielverzeichnis kopiert, sodass sie für den Code vorhanden ist, der versucht, darauf zuzugreifen.

Wie mache ich das jetzt? Sollte dies mit Build-Ereignissen erfolgen? Wenn ja, wie sage ich "Originale aller verknüpften Dateien in ihr Zielverzeichnis kopieren"?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage