Ich habe in Visual Studio 2010 mithilfe von CRM 2011 Developer Toolkit einen benutzerdefinierten Workflow implementiert. Es funktionierte gut mit systemgeneriertem Namespace. Aber, wenn ich den Namespace meines Projekts änderte, warf es einen Fehler "Error Registrierung Plugins und / oder Workflows. Plug-in Assembly enthält nicht die erforderlichen Typen oder Assembly Inhalt kann nicht aktualisiert werden." während Bereitstellen es. Und ich habe den Namensraum in .crmregister Datei, Projekteigenschaften und im Quellcode geändert. Dann ist das Problem hier.?
Wenn Sie Ihre custome Workflows über das CRM-Entwicklungstoolkint und -Paket bereitstellen und danach, wenn Sie einen Klassennamen oder Namespace geändert haben, müssen Sie die Datei RegisterFile.crmregister manuell ändern, da Visual Studio dies nicht für Sie erledigt. Wenn Sie also Ihren Klassennamen von A nach B und Ihren Namensraum von N nach M ändern, muss 'TypeName' aus dem folgenden xml in RegisterFile.crmregister wie folgt lauten:
%Vor%Ich habe genau das gleiche Problem beim Spielen mit dem CRM Toolkit angetroffen.
So habe ich das Problem gelöst:
Ich musste nichts manuell bearbeiten.
In unserem Fall haben wir ILMerge verwendet und versehentlich haben wir Microsoft.Xrm.Sdk.dll in unser Plugin eingebunden. Durch das Entfernen dieser DLL (copy local = false) wurde das Problem behoben.
Diese zusammengeführte DLL funktionierte trotzdem nicht, da sie eine Sicherheitsausnahmebedingung auslöst Vererbungssicherheitsregeln, die beim Überschreiben von Membern verletzt wurden: 'Microsoft.IdentityModel.Claims.ClaimsIdentity.System.Runtime.Serialization.ISerializeable.GetObjectData diese GetObjectData war in Microsoft.Xrm vorhanden. Sdk.dll daher Sicherheitsausnahme von SandBox-Bereitstellung.
Verweisen Sie auf andere Assemblys (wie Microsoft.Xrm.Sdk)? Wenn dies der Fall ist, müssen sie mit einem Tool wie ILMerge zusammengeführt werden Sie stellen in der Datenbank bereit. Wenn Sie eine Bereitstellung auf Festplatte durchführen, müssen sie auch im Assembly-Ordner vorhanden sein oder im GAC installiert sein.
Sie müssen möglicherweise prüfen, ob das Plugin mit demselben Namen als registriertes Plugin in der Organisation existiert. Heben Sie die Registrierung des Plugins auf und registrieren Sie die Assembly und die Schritte erneut.
Wenn Sie einige automatisch generierte Klassen, z. Plugins, die Sie erstellt haben, indem Sie mit der rechten Maustaste auf Create Plug-in geklickt haben und Sie es gelöscht haben, müssen Sie die Traces in RegisterFile.crmregister bereinigen. Wenn es ein Plugin war, müssen Sie einen ganzen Zweig mit seinem Namen löschen.
Dies kann passieren, wenn Sie den Hauptklassennamen Ihres Plugins ändern / umgestalten. (Wenn zum Beispiel die Codeanalyse sich beschwert, dass Sie einen Rechtschreibfehler haben, und Sie beheben es) Dieses Problem wird erst beim nächsten Ausführen der Bereitstellung angezeigt
Wenn Sie also den Namen Ihrer Plugin-Klasse eingegeben haben ...
erledigt.
(Ok, gerade bemerkt, Masoud Ghabachi hat das schon vor Ewigkeiten erwähnt ...)
Abgesehen von den oben genannten Fällen, überprüfen Sie die .snk-Datei oder .pfx-Datei. Ändert es sich in Ihrer zweiten Bereitstellung.
In diesem Fall versuchen Sie, alten Quellcode zu verwenden, oder Sie müssen den Plug / Workflow erneut registrieren.
Überprüfen Sie die Workflow-Eigenschaft "RegisterFile.crmregister" TypeName darf keine Leerzeichen enthalten.
Ich habe die Signaturschlüssel-Datei geändert und den Fehler erhalten, indem ich ihn in die vorherige Schlüsseldatei zurückversetzt habe, um das Problem für mich zu lösen.
Ihre Version muss mit der Version identisch sein, die bereits für ein Upgrade veröffentlicht wurde. Wir hatten eine Assemblerversion von 1 Dur, 0 Moll - und die, die wir veröffentlichen wollten, war 12 Dur, 0 Moll.
Wir haben die Visual Studio-Lösungsnummer zurück auf Version 1.0.0.0, Build, Load Assembly, Update geändert - und es hat funktioniert!
Das Löschen würde das Problem aufgrund der Abhängigkeiten von Workflows NICHT lösen, wenn sie verwendet wurden.
Wir haben die Verfolgung eingeschaltet und das SQL-Skript gefunden, um den Schuldigen zu finden.
Tags und Links c# c#-4.0 dynamics-crm dynamics-crm-2011