webentwicklung-frage-antwort-db.com.de

Dateien werden während der Kompilierung in den Anwendungsordner kopiert

Wenn ich Dateien habe, die ich beim Kompilieren aus meinem Projekt in den .\bin\debug\-Ordner kopieren möchte, scheint es, als müsste ich sie in das Stammverzeichnis des Projekts einfügen. Wenn Sie sie in einem Unterordner ablegen, scheinen sie in den Ordner .\bin\debug\ in derselben Struktur zu kopieren, in der sie gespeichert sind.

Gibt es eine Möglichkeit, dies zu vermeiden?

Um es klar zu sagen: Wenn ich einen MyFirstConfigFile.txt und MySecondConfigFile.txt in einem ConfigFiles-Ordner habe und ich deren Kopie auf Ausgabe auf Kopie ... gesetzt habe, erscheinen sie im .\bin\debug\ConfigFiles\-Ordner. Ich möchte, dass sie im Ordner .\bin\debug\ angezeigt werden.

73
Andrew Ducker

Sie könnten dies mit einem Post-Build-Ereignis tun. Setzen Sie die Dateien auf "Kompilieren", und kopieren Sie die Dateien im Makro in das gewünschte Verzeichnis.

Hier ist ein Post-Build-Makro, das meines Erachtens funktionieren wird, indem alle Dateien in einem Verzeichnis namens Configuration in den Root-Buildordner kopiert werden:

copy $(ProjectDir)Configuration\* $(ProjectDir)$(OutDir)
75
JoshBerke

Sie können eine MSBuild-Aufgabe auf Ihrem csproj verwenden.

Bearbeiten Sie Ihre Csproj-Datei

  <Target Name="AfterBuild">
    <Copy SourceFiles="$(OutputPath)yourfiles" DestinationFolder="$(YourVariable)" ContinueOnError="true" />
  </Target>

Sie können die Dateien oder Links auch im Stammverzeichnis des Projektmappen-Explorers ablegen und dann die Dateieigenschaften festlegen:

Build action = Content

und 

Copy to Output Directory = Copy if newer (zum Beispiel)

Für einen Link ziehen Sie die Datei aus dem Windows-Explorer in den Lösungs-Explorer. Halten Sie dabei die Umschalt- und Steuertasten gedrückt.

 enter image description here

29
Georg

Sie möchten ein Post-Build-Ereignis für Ihr Projekt verwenden. Sie können die Ausgabe dort angeben und es gibt Makrowerte für häufig verwendete Dinge wie Projektpfad, Artikelname usw.

1
Mark Sherretta

Ich habe diese Frage bei der Suche nach "Kopieren von Dateien in den Anwendungsordner zur Kompilierzeit" gefunden. OP scheint das schon sortiert zu haben, aber wenn nicht:

Klicken Sie in Visual Studio mit der rechten Maustaste auf die Datei, wählen Sie Eigenschaften aus, und ändern Sie die Option "In Ausgabe kopieren" in "Immer". Siehe http://msdn.Microsoft.com/de-de/library/0c6xyb66.aspx

1
Colonel Panic

kopieren von Unterordner in Unterordner

 if not exist "$(ProjectDir)$(OutDir)subfolder" mkdir "$(ProjectDir)$(OutDir)subfolder"

 copy "$(ProjectDir)subfolder\"  "$(ProjectDir)$(OutDir)subfolder\"
0
Ehsäɳ Khʌɳ

Sie können das PostBuild-Ereignis des Projekts verwenden. Nachdem der Build abgeschlossen ist, können Sie eine DOS-Batchdatei ausführen und die gewünschten Dateien in den gewünschten Ordner kopieren.

0
Kirtan