C'est ma demande deplyoment: c: \ Program Files \ produit \ API.dll (Enregistré dans Gac)
c: \ Program Files \ produit \ ApiImpl1.dll (non Gac)
c: \ Program Files \ produit \ ApiImpl2.dll (non Gac)
c: \ ConsoleApplication \ TestApi.exeAjouter Référence aux copies non assemblées Assemblée GAC à charge GAC récursive (C# Visual Studio 2008)
Api.dll est Façade pour l'application qui a mis en œuvre "c: \ Program Files \ Product \" Api.Dll est enregistré dans GAC et dispose d'un résolveur d'assemblage aux DLL qui se trouve dans "c: \ Program Files \ Product \" Api. dll référence à la fois ApiImpl1.dll et ApiImpl2.dll.
Le problème est lorsque ConsoleApplication ajoute une référence à Api.dll Visual Studio copie les ApiImpl1.dll et ApiImpl2.dll de manière récurrente à la destination du projet. (Bien que CopyLocal = False) J'ajouter la référence à la navigation par "c: \ Program Files \ produit \ API.dll"
Pour autant que je sache, j'ai plusieurs solutions:
1) Inscrivez-ApiImpl1.dll et ApiImpl2.dll dans GAC (Non acceptable, j'ai le résolveur de l'Assemblée pour cela)
2) Ajouter au Registre ".Net Add Reference", "c: \ Program Files \ Product" (ne le résout pas)
3) Ajoutez ".NET Add Reference" Registre, "c: \ windows \ Assembly \ gac_msil \ Api.dll (Résolvez-le, mais c'est une mauvaise solution)
4) Modifier manuellement l'attribut ConsoleApplication.csproj et Supprimer HintPath de référence Api.dll. (Non acceptable, parce que je vais avoir beaucoup de coutume les utilisateurs qui utiliseront cette API)
Le "CopyLocal = False" - est-ce sur API.dll ou ApiImpl1.dll? –
Les deux CopyLocal = False – Aviram