Hej! Vad menar du med "till sin egen?". Ett sätt är väl att baka ihop allt i en enda dll? Ett sätt skulle ju kunna vara att skicka med en krypterat "password" till konstruktorn på klasserna i dll:en. Lämpligen lägger man den logiken i en klass som alla andra ärver från sedan. jag vet att jag har läst en artikel om just det där, tyvärr har jag ingen aning om var :( Peter, Har du fått svar på allt här? du ska använda strong names för den typen av problem, varför vill du uppfinna hjulet igen? Strong name - Strong name - Strong name - Strong name - Strong name - Strong name Ledsen att jag inte svarat på så länge. En variant är att köra strongname + patchning. Då kommer endast det som skiljer sig åt att skickas över. Se bara till att ni har samtliga versioner på servern (som kan komma tänkas behöva en patchning, riktigt gamla kanske det räcker med att ha en stor och klumpig fil att ladda ner) så kan man sedan antingen skapa patcharna vid behov eller se till att skapa patcharna i förhand. Sedan laddar uppdateringssaken ner patcharna som bara blir några kb stora och patcha lokalt. kollade lite vad msdn hade att säga om saken..... Tjena Lars!Publisher's certificate
I mitt projekt med flera dll'er skulle jag vilja förhindra slutanvändaren från att byta ut en av dem till sig egen/en annan dll. Jag vill inte använda strong name assembly. Hur implementerar man en sådan lösning?
/PeterSv: Publisher's certificate
Sv: Publisher's certificate
Jag har aldrig testat denna lösning så om den håller måttet vet jag inte. Sv: Publisher's certificate
Sv: Publisher's certificate
Det är inte så lätt som att _bara_ byta ut en dll. :-)
Om de skulle byta ut en dll hur vet de då att denna kan prata med de andra? och att de andra pratar rätt med denna?
Varför inte använda stong name då?
Mvh JohanSv: Publisher's certificate
Kan jag eller du stänga tråden?
Mvh JohanSv: Publisher's certificate
Sv: Publisher's certificate
Det är EXAKT därför man har det.
För att illustrera:
Du säger: Jag vill ha ett gummiband eller något att knyta runt mig så jag inte slår mig när jag krockar med bilen, jag vill inte använda säkerhetsbältet.
/mickeSv:Publisher's certificate
Scenariot är följande:
Vi har ett system som hanterar fakturering, kundregister med mera. Det är gjort i VB.Net och för att kunna sköta uppdateringar löpande har vi gjort en programvara som själv kontrollerar mot en web-service som tillhandahåller de senaste dll'erna.
För att slippa ladda ner hela programmet (åtskilliga mb) vid varje liten uppdatering är programmet uppdelat i ca. 15 logiskt grupperade dll'er. Rapport, kund, person, fakturering osv.
Uppdateringsprogramvaran jämför filernas versionsnr. Om vi använder strongly typed assemblies kan jag inte låta användaren få endast dll (ändrad och omkompilerad) utan måste även lägga upp samtliga dller den refererar till (annars blir det referensfel).
Som jag förstår det skulle detta kunna lösas med policy-filer men eftersom vi inte för någon versionshistorik och uppdaterar enstaka dller dagligen skulle detta bli allt för krånligt och tidsödande.
I detta system använder vi inte heller GAC:en vilket förtar lite av nyttan med Str. typed ass.
Hoppas detta förklarar mitt problem :)
/PeterSv: Publisher's certificate
En annan variant är ju att göra ett eget strongname (på sätt och vis.) Skapa ett hash på hela filen. Använd sedan lite trevliga krypto-saker för att signa hashen (rsa) med den privata nyckeln. På klienten kollas sedan att hashen verkligen är skapad av er med den publika nyckeln. Om den är det så är det bara att kolla att filen har samma hash som det står i filen. Om det stämmer är det bara att ersätta den gamla med den nya filenSv: Publisher's certificate
"Publisher policy assemblies provide support for versioning satellite assemblies. You can update and re-deploy a satellite assembly without updating the main assembly. After you update a satellite assembly, increment its version number and ship it along with a publisher policy assembly. In the publisher policy assembly, specify that your new satellite assembly is backward-compatible with its previous version. Although the ResourceManager will use the main assembly's existing satellite contract version number to retrieve requested resources, the correct updated version of the assembly will be retrieved because the assembly loader will bind to the satellite assembly version specified in the publisher policy assembly."
tjosan !!
senare samma dag: Såg just att du inte ville blanda in policy begreppet!
läs mer på:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconLocalizingResources.asp
börja bli läge för en bira snart Peter :-) !Sv:Publisher's certificate
Verkligen dags för nåra öl. Var ju ett tag sedan!
Nej, policy-filer skulle som sagt bli alldeles för administrativt jobbigt. Som jag ser det så är den största (enda?) anledningen att köra strongtype att man kan lägga det i GAC:en och möjligtvis att man med hjälp av policy-filer kan hantera versioner på ett ganska smidigt sätt. Inget av detta var viktigt i detta system och därför tror jag vi skippar det :)
/Peter