149 votes

Copier le(s) fichier(s) d'un projet à un autre en utilisant l'événement post build...VS2010

J'ai une solution qui contient 3 projets. J'ai besoin de copier une vue d'un projet à un autre. Je suis en mesure de copier la DLL créée via des événements post-construction comme suit :

enter image description here

Je veux donc copier le fichier du projet 1 '/Views/ModuleHome/Index.cshtml' vers un dossier du projet 2. Comment puis-je copier le(s) fichier(s) vers le projet souhaité via l'événement post-build ? Merci

5voto

Bizz Points 1637

Cette commande fonctionne comme un charme pour moi :

for /r "$(SolutionDir)libraries" %%f in (*.dll, *.exe) do @xcopy "%%f" "$(TargetDir)"

Il récursivement copie chaque dll y exe fichier de MySolutionPath\libraries dans le bin\debug ou bin\release .

Vous pouvez trouver plus d'informations dans aquí

3voto

kim Points 41

Comme les réponses précédentes, je suggère aussi xcopy . Cependant, j'aimerais compléter la réponse de Hallgeir Engen par la réponse suivante /exclude paramètre. Il semble qu'il y ait un bogue avec le paramètre qui l'empêche de fonctionner avec des noms de chemin qui sont longs ou qui contiennent des espaces, car les guillemets ne fonctionneront pas. Les noms de chemins doivent être au format "DOS", "Documents" se traduisant par "DOCUME~1" (selon la norme cette source ).

Donc, si vous voulez utiliser le \exclude il existe une solution de contournement aquí :

cd $(SolutionDir)
xcopy "source-relative-to-path-above" "destination-relative-to-path-above
/exclude:exclude-file-relative-path

Notez que les chemins source et destination peuvent (et doivent, s'ils contiennent des espaces) être entre guillemets, mais no le chemin d'accès au fichier d'exclusion.

1voto

Flot2011 Points 2327

Si vous voulez prendre en compte le plateforme (x64, x86, etc.) et l'option configuration (Debug ou Release), ce serait quelque chose comme ceci :

xcopy "$(SolutionDir)\$(Platform)\$(Configuration)\$(TargetName).dll" "$(SolutionDir)TestDirectory\bin\$(Platform)\$(Configuration)\" /F /Y

1 votes

Cela ne fonctionne pas lorsque la plate-forme est Any CPU. Vous devez utiliser $(OutDir) à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X