Jag testar en net.dll som jag tänkte lägga in i min assembly som jag skapar med en strong name, därför behöver även dll:en ha en sådan. Har du källkoden för den här DLLen så du kan kompilera om den? Okej, kan du då inte kontakta tillverkaren och be dem tillhandahålla en version med starkt namn? Jo, men det går alltså inte att göra det själv,eller?. Det går ju med com-dll:er... >Jo, men det går alltså inte att göra det själv,eller? ska int espela någon roll om den är skriven i MC++ eller ngt annt .NET baserat språk .. IL koden och assemblyn som genrerats är strukturellt sett helt identiskk och ILDASM / ILASM funkar fin fint för saker och ting skrivet i tex C# ... Nja, MC++ inkluderar alltid (eller oftast, kommer inte ihåg exakt hur det är) en del "native" kod i assemblyn, för att initiera C runtimen och sånt. IL(D)ASM hanterar bara IL kod, och klarar därför inte att "roundtrippa" MC++ assemblies. om det du säger stämmer, så skulle MC++ assembleis skilja sig från andra .net assemblies, har jag svårt att tänka mig.. >Hela "strong name" konceptet är .NET specifikt, det fanns inte för COM, så det tror jag inte... >om det du säger stämmer, så skulle MC++ assembleis skilja sig från andra .net assembliesLägga in en "strong name"
Hur gör jag för att skapa en strong name till dll:en?Sv: Lägga in en "strong name"
MSSv: Lägga in en "strong name"
MSSv: Lägga in en "strong name"
Sv: Lägga in en "strong name"
Jodå, förutsatt att den inte är skriven i MC++ så kan du köra ILDASM för att få IL assembler koden, och sedan skapa en ny med ILASM /KEY. Men bara för att det går innebär inte att du får eller bör ska göra det.
Ett annat alternativ är kanske att du tar bort refererensen til den här assemblyn, och sedan laddar den dynamiskt och använder den med "late binding".
>Det går ju med com-dll:er...
Hela "strong name" konceptet är .NET specifikt, det fanns inte för COM, så det tror jag inte...
MSSv: Lägga in en "strong name"
Sv: Lägga in en "strong name"
MSSv: Lägga in en "strong name"
dessutom med det argumentet så gäller det bara om tillverkarens dll är skapad i MC++, inte om den är skriven i C# eller vb.net ...
Har själv plockat ner en C# klass med ildasm, ändrat på den för att få komma åt vissa interop marshaling förändringar, och använt ilasm för att sätta ihop den igen .. funkade fin fint ... Sv: Lägga in en "strong name"
Det hela är väldigt nytt för mig, men jag provade att skapa ett litet klassbibliotek som ska ha "strong name", använde några gamla com-prylar i klassen, läste lite ihjälpen, och vips så hade mina comprylar fått strong names. Minns inte exakt hur jag gick tillväga :)
Orkar inte heller gå in på det nu, känner att det finns en hel del nytt att lära vad gäller hantering av dll:er osv.
Tack för tipsen förresten!Sv: Lägga in en "strong name"
Det är snarare så att C++ kompilatorn är unik på så sett att den har förmåga att blanda IL och maskinkod i samma fil.
>har jag svårt att tänka mig..
Fine. Enklast är väl om du testar själv...
>dessutom med det argumentet så gäller det bara om tillverkarens dll är skapad i MC++, inte om den är skriven i C# eller vb.net ...
Just det, och det var därför jag skrev "... förutsatt att den inte är skriven i MC++ så kan du ...".
MS