La tâche consiste à former le projet Visual Studio 2010 afin que, lors de toute génération ou publication, un utilitaire foo.exe
soit copié dans le répertoire de sortie (bin
).
Au début, j'ai créé la tâche PostBuildEvent dans .csproj (fichier MSBuild):
<PropertyGroup>
<PostBuildEvent>
Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
</PostBuildEvent>
</PropertyGroup>
Mais ce n'est pas universel. Pendant la publication (Visual Studio 2010), foo.exe
apparaît dans le répertoire bin
, mais n'est pas copié dans le répertoire de publication de sortie. Peut-être que je fais tout à fait faux et qu'il existe un mécanisme standard pour inclure des fichiers dans des projets afin qu'ils soient ultérieurs, pendant la construction ou la publication, copiés dans bin
?
Il y a et cela ne dépend pas des événements post-build.
Ajoutez le fichier à votre projet, puis dans les propriétés file, sélectionnez "Copier dans le répertoire de sortie" ou "Copier toujours" ou "Copier si plus récent".
Voir MSDN .
Je n'ai besoin que de fichiers Push lors de la construction, alors je viens d'ajouter une entrée de ligne de commande d'événement post-construction comme celle-ci:
Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"
Vous pouvez définir cela en cliquant avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions, puis sur Propriétés> Événements de construction.
Dans l'Explorateur de solutions, sélectionnez les fichiers que vous souhaitez copier dans le répertoire de sortie et attribuez deux propriétés:
Ça fera l'affaire.
Essayez d'ajouter une référence aux dll manquantes à partir de votre service/projet web directement . L'ajout de références à un projet différent n'a pas fonctionné pour moi.
Je n'avais qu'à faire cela lors de la publication de mon application Web, car elle ne copiait pas toutes les dll requises.
Juste pour que mes camarades atteints de troubles neuronaux puissent s'y retrouver ici, j'avais supposé que, pour les projets Web, si le fichier lié était un fichier .config externe, le "répertoire de sortie" serait le même répertoire que celui utilisé par web.config, c'est-à-dire la racine de votre projet web. Rétrospectivement, il n’est pas surprenant que le fichier lié soit copié dans le dossier racine/bin.
Donc, s'il s'agit d'un fichier d'inclusion appSettings, la balise ouverte de votre web.config serait
<appSettings file=".\bin\includedAppSettingsFile.config">
Duh.
Dans mon cas, définir Copy to Output Directory
sur Copy Always
et Build n'a pas suffi, contrairement à Rebuild.
J'espère que cela aide quelqu'un!