Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Assembly - conflit de version

2 réponses
Avatar
Michael Moreno
Bonjour,

Sauriez-vous si :
- Existe-t-il un moyen d'avoir une DLL COM ecrite en C# non signee ?
- Existe-t-il un moyen de ne pas tenir compte des versions des DLL
signees ?

Merci.




Si cela vous interesse, voici la raison du pourquoi de mes questions !

je developpe une application N-Tiers qui est faite d'environ 10 exe et
100 dlls.

J'ai sans arret des problemes de versions avec les assemblees que je ne
parviens pas a resoudre du tout.

La plupart des assemblees que j'ai sont privees et sont dans un
sous-repertoire de l'executable :

- C:\Dev\Compiled <= les EXE
- C:\Dev\Compiled\Dlls\dotNet <= les assemblees .Net

Je definis le "probing" path dans les fichiers de config comme suit:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing
privatePath="Dlls\DotNet;Dlls\Infragistics;Dlls\COMs;Dlls\TLBs"/>
</assemblyBinding>
</runtime>

Cela marchait bien tant que je n'avais pas donne un strong name a l'une
des assemblees. Cette assemblee servant de lien avec COM il me faut la
signer avec un nom fort. Cette assemblee dependant de plusieurs
assemblees, il m'a fallu propager la contrainte de nom fort dans
plusieurs assemblees.

Et depuis c'est le bordel monstre !!! Y a plus rien qui marche ou
presque. Tous les projets se compilent individuellement. A l'execution
y en a toujours un qui ne trouve pas la bonne version d'une assemblee
XYZ.

J'ai beau lire tous les bouquins de la terre et la MSDN je ne trouve
pas la solution.

Je croyais que .Net permettait de sortir du Dll Hell et je n'ai jamais
eu autant de probleme de versioning que maintenant.

--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/

2 réponses

Avatar
Remi Thomas - MVP
"Michael Moreno" écrivit
Bonjour,

Sauriez-vous si :
- Existe-t-il un moyen d'avoir une DLL COM ecrite en C# non signee ?
- Existe-t-il un moyen de ne pas tenir compte des versions des DLL signees
?




Une bonne alternative est de fixer en dur tes numéro de version.
[assembly: AssemblyVersion("1.0.0.1")]

Rémi

--
Rémi THOMAS
MVP Visual C++ .NET
http://www.pixel-technology.com/rthomas
Avatar
Michael Moreno
Bonjour,

Une bonne alternative est de fixer en dur tes numéro de version.
[assembly: AssemblyVersion("1.0.0.1")]



Je le fais aussi. Cela permet-il de ne pas signer les assemblees COM ?
Je vais tester si regasm aime ca ou non.

Merci.

--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/