wake-up-neo.com

VS2010 Wie werden Dateien in ein Projekt eingefügt, um sie beim Erstellen oder Veröffentlichen automatisch zu erstellen, um ein Ausgabeverzeichnis zu erstellen

Die Aufgabe besteht darin, das Visual Studio 2010-Projekt so zu formen, dass während des Erstellens oder Veröffentlichens ein foo.exe-Dienstprogramm in das Ausgabeverzeichnis (bin) kopiert werden soll. 

Früher habe ich eine PostBuildEvent-Aufgabe in .csproj (MSBuild-Datei) erstellt:

<PropertyGroup>
  <PostBuildEvent>
    Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
  </PostBuildEvent>
</PropertyGroup>

Dies ist jedoch nicht universell. Während der Veröffentlichung (Visual Studio 2010) wird foo.exe im Verzeichnis bin angezeigt, jedoch nicht in das Ausgabeveröffentlichungsverzeichnis kopiert. Vielleicht mache ich alles komplett falsch und es gibt einen Standardmechanismus, um Dateien in Projekte aufzunehmen, die später beim Erstellen oder Veröffentlichen in bin kopiert werden sollen.

64
Dao

Es gibt und ist nicht von Nachbearbeitungsereignissen abhängig.

Fügen Sie die Datei zu Ihrem Projekt hinzu, und wählen Sie in den Eigenschaften von file unter "In Ausgabeverzeichnis kopieren" entweder "Immer kopieren" oder "Bei Neuem kopieren".

Siehe MSDN .

99
Oded

Ich habe nur die Notwendigkeit, Dateien während eines Builds zu pushen. Deshalb habe ich gerade einen Post-Build-Event-Befehlszeile-Eintrag wie folgt hinzugefügt:

Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"

Sie können dies festlegen, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt klicken und dann auf Eigenschaften> Ereignisse erstellen klicken

17
Matthew Piatt

Wählen Sie im Projektmappen-Explorer die Dateien aus, die Sie in das Ausgabeverzeichnis kopieren möchten, und weisen Sie zwei Eigenschaften zu

Das wird den Trick tun.

4
user3110417
  1. Fügen Sie die Datei Ihrem Projekt hinzu.
  2. Gehen Sie zu den Eigenschaften dieser Datei.
  3. Legen Sie "Build-Aktion" auf "Eingebettete Ressource" fest.
  4. Legen Sie für "In Ausgabeverzeichnis kopieren" die Option "Immer kopieren" fest.
3
5ervant

Fügen Sie einen Verweis auf die fehlenden DLLs direkt aus Ihrem Service/Webprojekt hinzu . Das Hinzufügen der Referenzen zu einem anderen Projekt hat für mich nicht funktioniert. 

Ich musste dies nur beim Veröffentlichen meiner Web-App tun, da nicht alle erforderlichen DLLs kopiert wurden.

0
goku_da_master

Um meinen Kollegen mit neuronisch beeinträchtigten Kameraden hier Zufall zu ermöglichen, hatte ich angenommen, dass bei Webprojekten, wenn die verknüpfte Datei eine externe .config-Datei wäre, das "Ausgabeverzeichnis" das gleiche Verzeichnis wäre, in dem sich web.config befindet. dh das Stammverzeichnis Ihres Webprojekts. Rückblickend ist es völlig überraschend, dass die verknüpfte Datei in den Ordner root/bin kopiert wird. 

Wenn es sich also um eine appSettings-Include-Datei handelt, wäre das open-Tag Ihrer web.config 

<appSettings file=".\bin\includedAppSettingsFile.config">

Duh.

0

In meinem Fall haben Sie Copy to Output Directory auf Copy Always und Build nicht gesetzt, während Rebuild dies getan hat. 

Hoffe das hilft jemandem!

0
Joel