2009-02-27 5 views
10

J'ai un projet d'application WPF avec plusieurs références de projet dans une seule solution dans VS 2008. Lorsque je compile ma solution, toutes les DLL référencées sont sorties dans le même dossier que le fichier .exe principal est sorti.Can Visual Studio compile les références de projet dans un dossier différent puis le fichier .exe principal

Est-il possible de configurer ma build de projet .exe principale pour afficher toutes les références dans un sous-dossier par rapport à mon .exe?

Je voudrais que le résultat final à quelque chose comme ceci:

MyApp.exe MyApp.exe.config Lib \ SomeReference.dll Lib \ SomeReference2.dll

(je suppose que si ce est possible, ce serait possible avec n'importe quel .exe).

Merci! Jon

Répondre

7

Il semble que ce soit un processus assez intensif.

Définissez d'abord la propriété Copier locale de la référence sur false afin que les fichiers .dll ne soient pas copiés dans le dossier bin \ Debug.

Ensuite, créez un élément assemblyBinding\probing dans votre app.config de charger le temps d'exécution de rechercher dll dans le dossier Lib

Ensuite, créez une action post-build de copier les DLLs nécessaires pour le bac \ \ Debug \ Lib dossier.

+0

peut-être qu'il serait plus facile de laisser Copy Local = true, mais combiner assemblyBinding \ probe avec déplacer * .DLL de $ (TargetDir) au sous-dossier à la post-construction. –

+0

Si ce sont des références de projet, je serais d'accord avec vous, mais si ce ne sont que des DLL précompilées, vous pouvez aussi bien les copier depuis leur source dans le postbuild. De plus, si vous créiez un msi, vous ne voudriez pas que les dlls fassent partie de la sortie principale, ce que je crois qu'ils seraient si CopyLocal = true. – foson

+0

ah oui, merci, je pensais aux références du projet. Référencer les DLL au lieu des projets est un mauvais karma, mais les DLLs tierces et le projet de déploiement sont d'excellents points. –

Questions connexes