Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

Sul DebuggableAttribute, le opzioni del compilatore e l'errore CS0647

Richter nel suo libro (p. 444) dice:

"Il compilatore JIT (Just-In-Time) esamina l'attributo personalizzato System.Diagnostics.DebuggableAttribute applicato all'assembly. In genere, il compilatore applica questo attributo automaticamente. Se nell'attributo è specificato true per il parametro isJITOptimizerDisabled del costruttore DebuggableAttribute, il compilatore JIT non eseguirà l'inlining dei metodi dell'assembly. Per impostare questo parametro su true è possibile utilizzare l'opzione /debug del compilatore C#."

E' un po' strano secondo me il fatto che isJITOptimizerDisabled sia collegato all'opzione /debug (che sta nella categoria Debugging/Error Checking e ha il significato di Emit Debugging Information) e non all'opzione /optimize (della categoria Optimizations e che ha il significato Enable/Disable Optimizations). Secondo voi Richter si è sbagliato e in realtà si riferiva al parametro isJITTrackingEnabled? Ma se  anche fosse così, ho fatto tutte le combinazioni tra, da una parte isJITTrackingEnabled (true/false), isJITOptimizerDisabled (true/false) nel codice come:

[assembly:System.Diagnostics.Debuggable(..., ...)]

(sufficiente un programma che contenga solo questa riga dove al posto dei puntini mettete varie combinazioni di true o false) e dall'altra parte /debug (+/-) e /optimize (+/-) nelle opzioni del compilatore C# con varie combinazioni di "+" o "-". Mi è risultata una matrice stranissima da cui non vedo alcuna regola per evitare l'errore CS0647 con la reason: "Assembly custom attribute 'System.Diagnostics.DebuggableAttribute' was specified multiple times with different values".

La mia domanda è: che relazione c'è tra l'attributo DebuggableAttribute, le opzioni del compilatore C# e l'errore CS0647?

Print | posted on domenica 19 dicembre 2004 20:03 | Filed Under [ Carillon .NET ]

Powered by:
Powered By Subtext Powered By ASP.NET