Sto scrivendo un plug-in per un client su un tenant di prova di CRM Online (quindi supponiamo che abbia le patch più recenti ecc.) E abbia riscontrato un errore che non ho visto prima. In generale ho sempre usare un metodo di estensione lungo le linee di seguito, solo per chiarezza di codice davvero:Metodi di estensione per le istanze online di CRM 2011 che causano il tipo di eccezioni di caricamento
public static void AddOrUpdate(this Entity e, string propertyName, object value)
{
if (e.Attributes.Contains(propertyName))
{
e.Attributes[propertyName] = value;
}
else
{
e.Attributes.Add(propertyName, value);
}
}
Niente estremamente controverso ci credo? In ogni caso per qualsiasi motivo, se comprendo il file di classe come parte di un plugin per questo client, ottengo il seguente errore gettato:
Unhandled Exception: System.ServiceModel.FaultException`1
System.TypeLoadException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #9A0442A7
[foo.bar.Plugins: foo.bar.Plugins.TrackActivity]
[6ed535ec-c7a8-e211-858f-3c4a92dbdc37: foo.bar.Plugins.TrackActivity: Create of task]
Non c'è traccia inclusa, che mostra il plugin non è ancora eseguita (anche se la prima riga di codice lancia un'eccezione!).
Ho fatto un po 'di scavo e sembra che per questo client/istanza almeno: - Se includo un file di classe statico (public static class Foo
) con qualsiasi metodo, ottengo questo errore, se la classe è effettivamente utilizzata da codice o non - Quando l'errore viene generato, il plugin stesso non viene eseguito (l'eccezione si verifica prima di qualsiasi codice)
Qualcuno ha visto qualcosa di simile prima o ha qualche intuizione sulle eccezioni System.TypeLoadException
?
Sì che l'ha inchiodato. Compilato contro. Net 4 (invece di 4.5) e funzionava bene. Grazie! – glosrob