2016-06-06 14 views
0

Ich beginne ein neues Projekt auf einem neuen Windows 10 Computer, der an CRM 2016 arbeitet, und habe seltsames Verhalten. Ich musste die Enumerationen der Auswahllisten für meinen Code generieren, sodass ich das GeneratePicklistEnums-Projekt aus dem 2016 SDK SampleCode-Ordner verwendete. Ich habe das Signaturzertifikat für die Projekteigenschaften erstellt, Build ausgeführt und die BAT-Datei geändert (wie bei früheren Versionen) und beim Ausführen der Batchdatei erhalte ich folgende Fehlermeldung:Starke Namensvalidierung bei CRM 2016 fehlgeschlagen GeneratePicklistEnums

Unbehandelte Ausnahme: System.IO .FileLoadException: Datei oder Assembly konnte nicht geladen werden 'Microsoft.Xrm.Sdk, Version = 8.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine seiner Abhängigkeiten. Starke Namensvalidierung fehlgeschlagen. (Ausnahme von HRESULT: 0x8013141A) ---> System.Security.SecurityException: Starke Namensvalidierung fehlgeschlagen. (Ausnahme von HRESULT: 0x8013141A) --- Ende der inneren Ausnahmestapelüberwachung --- bei Microsoft.Crm.Services.Utility.CrmSvcUtil.Main (String [] args)

las ich eine Reihe von Blogs und MS-Community-Beiträge zum Deaktivieren der starken Namensüberprüfung und zum Hinzufügen von Ausnahmen - keiner von ihnen hat funktioniert.

Ich schaute auf die AssemblyInfo.cs und sah keinen Verweis auf die AssemblyKeyFile, also fügte ich einen hinzu - machte keinen Unterschied. Ich habe mehrere Dinge mit sn.exe versucht, einschließlich "sn -Vr *", aber das hat auch nicht funktioniert. Ich habe ildasm verwendet, um die GeneratePicklistEnums.dll zu inspizieren, und es zeigte sich als Version 0.0.0.0 und alle referenzierten Assemblys hatten Versionsnummern.

Irgendwelche Vorschläge?

--- Update: ich endlich den Code, indem Sie zurück zum SDK und Kopieren Sie die folgenden Dateien aus dem Ordner BIN in meinem Projekt BIN-Verzeichnis zu laufen bekam:

Microsoft.Xrm.Tooling.Connector 
Microsoft.IdentityModel.Clients.ActiveDirectory 
Microsoft.Xrm.Tooling.CrmConnectControl 
Microsoft.Crm.Sdk.Proxy 
Microsoft.Xrm.Sdk 

aber es ist immer noch nicht eine Version oder einen starken Namen erhalten.

+0

Sie haben sie in den Ordner "bin" kopiert? Versuchen Sie, Ihre Projektreferenzen so zu aktualisieren, dass sie auf die DLLs im bin-Ordner des SDK verweisen (noch besser, verwenden Sie die auf nugget verfügbaren Assemblys). Sie sagen auch, dass Sie Ihren Code ausführen lassen, aber er bekommt immer noch keine Version oder einen starken Namen .... sagen Sie, dass Ihr Code weiter gekommen ist als beim letzten Mal, aber Sie erhalten immer noch denselben Fehler? – Polshgiant

Antwort

-1

Es gibt ein Open-Source-Tool für die XrmToolbox namens Early Bound Generator von Daryl LaBar, die nur ein Wrapper auf crmsvcutil aus dem SDK ist. Sparen Sie sich die Mühe und nutzen Sie dieses Tool, es hat viele nette Funktionen eingebrannt. Übrigens, mit den neuesten Versionen der Toolbox gibt es ein Plugin "store", so dass Sie das EBG nicht mehr manuell herunterladen müssen.

+0

Ich liebe die XRMToolbox und habe sie schon seit einiger Zeit benutzt. In diesem Fall wollte ich, dass dieses Programm eigenständig arbeitet, damit ich das Update auf die Optionsets.cs-Datei automatisieren konnte. – Eccountable

+0

Sie haben Glück ... der Early Bound Generator gibt einen crmsvcutil Befehl aus, mit dem Sie Ihren Code regenerieren können Datei über die Befehlszeile einschließlich aller ausgewählten Optionen, ohne die Toolbox auszuführen. – Polshgiant

+0

Ich habe das - das Problem, das ich versuchte zu lösen (was ich denke, ich habe meine Revision oben) war, dass das OOTB Beispielcode-Projekt, um die früh gebundene Klasse zu generieren, nicht funktionierte, bis ich die DLLs in diesem Projekt durch die ersetzt DLLs (oben) aus dem SDK-Bin-Ordner. – Eccountable