Die Aufgabe besteht darin, ein Visual Studio 2010-Projekt so zu erstellen, dass während eines Builds oder einer Veröffentlichung ein foo.exe
Dienstprogramm in das bin
Verzeichnis output ( ) kopiert wird .
Früh habe ich PostBuildEvent Aufgabe in .csproj (MSBuild-Datei) gemacht:
<PropertyGroup>
<PostBuildEvent>
Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
</PostBuildEvent>
</PropertyGroup>
Das ist aber nicht universell. Während der Veröffentlichung (Visual Studio 2010) wird foo.exe
im bin
Verzeichnis angezeigt , jedoch nicht in das Ausgabeveröffentlichungsverzeichnis kopiert. Vielleicht mache ich alles völlig falsch und es gibt einen Standardmechanismus, um Dateien in Projekte aufzunehmen, die später beim Erstellen oder Veröffentlichen kopiert werden sollen bin
?
foo.exe
in Lösung gesetzt\Tools\Foo\foo.exe
und während der Veröffentlichungfoo.exe
wird nach kopiertbin\Tools\Foo\foo.exe
. Für Code von Drittanbietern muss foo.exe direkt imbin
Ordner abgelegt werden . Ich habe bereitsNamespace Provider
Eigenschaften fürTools
undFoo
Verzeichnisse deaktiviert. Das hilft aber nicht. Ich möchte nicht platzierenfoo.exe
, um root zu projizieren. Aber wenn es meines Wissens keine anderen Varianten gibt, wäre dies die einzige Lösung?foo.exe
zum Projekt root aufgenommen. Nicht sehr schön, aber es funktioniert :) danke.Properties\PublishProfiles\(pubname).pubxml
einen neuen Eintrag hinzu<PropertyGroup><PipelineCollectFilesPhaseDependsOn>
. (Dies wird nur für dieses Veröffentlichungsprofil verwendet, nicht zumIch muss nur Dateien während eines Builds pushen, daher habe ich gerade einen Post-Build-Ereignisbefehlszeileneintrag wie den folgenden hinzugefügt:
Sie können dies festlegen, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt klicken und dann auf Eigenschaften> Ereignisse erstellen
quelle
Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"
Wählen Sie im Projektmappen-Explorer die Dateien aus, die in das Ausgabeverzeichnis kopiert werden sollen, und weisen Sie zwei Eigenschaften zu: - Aktion erstellen = Inhalt - In Ausgabeverzeichnis kopieren = Immer kopieren
Dies wird den Trick tun.
quelle
quelle
In meinem Fall hat das Setzen
Copy to Output Directory
aufCopy Always
und Build nicht den Trick gemacht, während Rebuild dies getan hat.Hoffe das hilft jemandem!
quelle
Fügen Sie direkt einen Verweis auf die fehlenden DLLs aus Ihrem Service- / Webprojekt hinzu . Das Hinzufügen der Referenzen zu einem anderen Projekt hat bei mir nicht funktioniert.
Ich musste dies nur tun, wenn ich meine Web-App veröffentlichte, da nicht alle erforderlichen DLLs kopiert wurden.
quelle
Nur damit meine Kameraden mit neuronalen Beeinträchtigungen hier darauf stoßen könnten, hatte ich angenommen, dass für Webprojekte, wenn die verknüpfte Datei eine externe .config-Datei wäre, das "Ausgabeverzeichnis" dasselbe Verzeichnis wäre, in dem web.config lebt. dh das Stammverzeichnis Ihres Webprojekts. Rückblickend ist es nicht überraschend, dass die verknüpfte Datei in den Ordner root / bin kopiert wird.
Wenn es sich also um eine appSettings-Include-Datei handelt, ist das offene Tag Ihrer web.config
<appSettings file=".\bin\includedAppSettingsFile.config">
Duh.
quelle