Je crée un fichier bild pour un projet contenant plusieurs bibliothèques tierces situées dans un répertoire lib. Donc, mon build script ressemble à ceci:Construire avec les bibliothèques nant et de référence dans les sous-répertoires
<csc target="library" ....>
<sources>
<include name="**/*.cs" />
<!-- common assembly-level attributes -->
<include name="../../src/CommonAssemblyInfo.cs" />
<exclude name="Properties/AssemblyInfo.cs" />
</sources>
<references>
<include name="${build.dir}/bin/lib/Should.Fluent.dll" />
</references>
</csc>
La compilation fonctionne très bien, cependant, l'exécution ne fonctionne pas, en disant qu'il ne peut pas trouver la bibliothèque Should.Fluent.dll. Comment puis-je faire en sorte que le programme le trouve?
Vous me dites qu'il n'est pas possible d'exécuter dll depuis un autre répertoire que votre application ou le GAC? Parce que j'ai lu à propos d'un/lib-switch à csc.exe qui indique au programme où chercher des DLL. – Alxandr
Ce commutateur ne fonctionne que pendant la compilation, il ne fait rien pendant l'exécution. Cependant, MSBuild copie automatiquement vos références dans le répertoire de sortie, ce que la plupart des développeurs ne remarquent pas. Vous pouvez vous connecter à ['AppDomain.CurrentDomain.AssemblyResolve'] (http://stackoverflow.com/questions/5260404/resolve-assembly-references-from-another-folder) pour changer cela, mais je ne le recommanderais pas. – skolima
Je vois. Eh bien, je suppose que je vais devoir laisser les ressources dans le même répertoire. – Alxandr