2011-02-15 1 views
11

EDIT: Ceci est une application VS2008 écrite en C#.Visual Studio 2008 - Déplacement de fichiers à build vers bin/

J'ai donc un dossier dans ma solution appelée

_lib/ 

Il est là où je garde mes DLL de sorte que lorsque je les référence, ils sont intégrés dans le dossier bin/.

Maintenant, j'ai un nouvel élément dans ma solution. C'est une DLL mais ne devrait pas être une référence (c'est nécessaire pour une application tierce). Donc, lors de la construction, je veux que ce soit copié de _lib/ à bin/ mais pas référencé dans le projet.

J'ai inclus le dossier _lib/ dans mon application, et pour les propriétés de cette DLL j'ai toujours sélectionné copier. Cette PRESQUE a travaillé, il copie le fichier avec le dossier, de sorte que ma structure ressemble à:

/bin/_lib/thedll.dll 

Au lieu de

/bin/thedll.dll 

Toutes les idées?

+0

Est-ce un projet C++? VS2010? – ThomasMcLeod

+0

C'est C# et VS2008. Je vais modifier cette information. :) –

+1

La copie est-elle une étape de construction personnalisée? – ThomasMcLeod

Répondre

22

Essayez de suivre ces étapes dans Visual Studio:

  • Développez l'arborescence du projet concerné

  • Double cliquez sur l'élément Properties

  • Dans la fenêtre ouverte cliquez sur l'onglet Build Events

  • Dans la zone de texte Post-build event command line e ceci:

    xcopy "$(ProjectDir)_lib\file.ext" "$(ProjectDir)bin\$(ConfigurationName)" 
    
  • Ouvrez le dossier de sortie attendu aux côtés de Visual Studio

  • Hit CTRL + Maj + B pour vous assurer que tout est enregistré et construire

  • Feel le sens de l'accomplissement se lève à l'intérieur de vous lorsque votre fichier apparaît

  • :)

Oh, et vous pouvez maintenant définir Copy to output directory-Do not copy.

+0

Déception: Ahhh mon sens de l'accomplissement n'a jamais été aussi élevé! Heh heh :) Merci pour la réponse, et ça a bien marché. En fait, j'ai envisagé de le faire en tant que tâche de post-construction, mais je me suis dit "il y a sûrement un paramètre que je peux utiliser pour le copier directement" mais hélas, il n'y en a pas. Merci pour la confirmation et la réponse détaillée :) –

+2

Juste faire une petite édition - ajouté/Y de sorte qu'il écrase les fichiers existants dans le répertoire de sortie. Sans cela, une erreur se produit après la première génération. –

+0

Merci beaucoup, vous avez résolu mon problème! –

Questions connexes