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.
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 .
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
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.
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.
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.
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!