Domanda

Fino a poco tempo fa utilizzavamo felicemente COM senza registrazione per i nostri componenti COM nativi e .NET. Tuttavia, ci siamo imbattuti in uno strano problema in cui la nostra applicazione ha iniziato a bloccarsi in modo casuale su Windows XP SP3 (ma non su Vista) dopo aver modificato il numero di versione di un assembly .NET per passare dalla versione candidata alla versione. (Non odi semplicemente la legge di Murphy?)

Dopo molte giornate lavorative perse e digrignamento dei denti, abbiamo scoperto che il problema era un bug noto in sxs .dll che causa il danneggiamento dell'heap durante il recupero di informazioni su una classe .NET. Esiste una correzione rapida che fa scomparire il problema ma le correzioni rapide non devono essere ridistribuite.

Siamo un po 'sorpresi che ci sia un orribile bug nell'implementazione COM senza registrazione. C'è qualcuno là fuori che usa con successo componenti COM per .NET senza registrazione? Come hai risolto questo problema?

È stato utile?

Soluzione

Questo problema è legato al modo in cui SxS calcola la dimensione delle informazioni sulla classe. Il numero di versione dell'assembly fa parte di queste informazioni.

Dal momento che funzionava con il numero di versione del candidato di rilascio, forse la soluzione alternativa è rendere il numero di versione del rilascio della stessa lunghezza della versione RC.

Se questo non funziona per te, esiste un processo stabilito per la richiesta di diritti di ridistribuzione per gli aggiornamenti rapidi. Vorrei coinvolgere l'assistenza clienti Microsoft per perseguire questa strada.

Altri suggerimenti

Stiamo utilizzando COM senza registrazione per componenti nativi e .NET. Abbiamo deciso di utilizzare un numero di versione dell'assembly fisso per questi componenti (principalmente per evitare di ingombrare il registro quando si ripetevano ripetutamente componenti .NET con un numero di build dinamico / *). Non è l'ideale ma abbiamo altri modi per determinare quale versione di un determinato componente viene utilizzata (non sono mai patchati singolarmente).

Sembra davvero un problema molto brutto! Quell'articolo della KB sembra quasi che usare SxS sia facoltativo ... Per quanto ne so è l'unico modo per fare COM senza reg?

Cordiali saluti, l'aggiornamento rapido è ora direttamente scaricabile: http: // www.microsoft.com/en-us/download/details.aspx?id=27680

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top