VS2010 Comment inclure des fichiers dans le projet, afin de les copier pour construire répertoire de sortie automatiquement lors de la construction ou de la publier
Tâche est de former de projet Visual Studio 2010, de sorte que, pendant toute construction ou publier certains foo.exe
utilitaire doit être copié à la sortie (bin
) répertoire.
Début j'ai fait PostBuildEvent tâche .csproj (MSBuild-fichier):
<PropertyGroup>
<PostBuildEvent>
Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
</PostBuildEvent>
</PropertyGroup>
Mais ce n'est pas universelle. Lors de la publication (Visual Studio 2010) foo.exe
apparaît dans bin
répertoire, mais n'est pas copié à la sortie de publier le répertoire. Peut-être que je fais tout tout à fait tort et il n'y a mécanisme standard pour inclure des fichiers dans des projets à plus tard, lors de la construction ou de publier, de copier à bin
?
Vous devez vous connecter pour publier un commentaire.
Il y a et il ne dépend pas de post construire des événements.
Ajouter le fichier à votre projet, puis dans la fichier propriétés sélectionnez sous "Copie vers le Répertoire de Sortie" ou "Copy" ou "Copier si plus Récent".
Voir MSDN.
foo.exe
en solution à\Tools\Foo\foo.exe
et lors de publierfoo.exe
est copié àbin\Tools\Foo\foo.exe
. Troisième partie du code des besoins foo.exe à être placé directement surbin
dossier. J'ai déjà désactivéNamespace Provider
propriété pourTools
etFoo
répertoires. Mais cela ne l'aide pas. Je voudrais ne pas placerfoo.exe
à la racine du projet. Mais si il n'y a aucune autres variantes, comme je comprends, ce serait la seule solution?foo.exe
à la racine du projet. Pas très beau mais ça marche 🙂 merci.Properties\PublishProfiles\(pubname).pubxml
une nouvelle entrée à<PropertyGroup><PipelineCollectFilesPhaseDependsOn>
. (Ce sera seulement utilisé pour cette édition de profil, non pour construire ou pour une autre édition des profils!)Je n'ai que de la nécessité de pousser les fichiers lors d'une création, donc j'ai juste ajouté un Événement Post-build entrée de Ligne de Commande comme ceci:
Vous pouvez les définir en cliquant-droit sur votre Projet dans l'Explorateur de solutions, puis Propriétés > Construire des Événements
Copy /Y "$(SolutionDir)Third Party\SomeLibrary\*" "$(TargetDir)"
Dans l'Explorateur de solutions, veuillez sélectionner les fichiers que vous souhaitez copiés vers le répertoire de sortie et d'attribuer deux propriétés:
- Construire l'action = Contenu
- Copier le Répertoire de Sortie = Copie Toujours
Cela fera l'affaire.
Dans mon cas, le réglage de
Copy to Output Directory
àCopy Always
et Construire fait pas l'affaire, tandis que la Reconstruction n'.Espère que cela aide quelqu'un!
Essayez d'ajouter une référence à la dll manquante de votre service/projet web directement. En ajoutant les références à un autre projet n'a pas fonctionné pour moi.
Je n'avais qu'à le faire lors de la publication de mon application web, car ce n'est pas la copie de toutes les dll.
Juste pour mes collègues neuronically visuels camarades pourrait par hasard sur elle ici, j'avais supposé que, pour les projets web, si le fichier lié est un externe .fichier de configuration que le "répertoire de sortie" serait le même répertoire que le web.config vit, c'est à dire de votre projet web racine. Rétrospectivement, il est tout à fait surprenant qu'il copie le fichier lié dans la racine du dossier/bin.
Alors, si c'est un appSettings notamment des fichiers de votre site web.config de la balise d'ouverture serait
<appSettings file=".\bin\includedAppSettingsFile.config">
Duh.