【发布时间】:2016-06-06 12:06:22
【问题描述】:
我正在一台运行 CRM 2016 的新 Windows 10 计算机上开始一个新项目,并且有一些奇怪的行为。我需要为我的代码生成选项列表的枚举,因此我使用了 2016 SDK SampleCode 文件夹中的 GeneratePicklistEnums 项目。我在项目属性上创建了签名证书,运行构建,并修改了 .bat 文件(就像我对过去版本所做的那样),当我运行批处理文件时,我收到了这个错误:
未处理的异常:System.IO.FileLoadException:无法加载文件或程序集“Microsoft.Xrm.Sdk,Version=8.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。强名称验证失败。 (来自 HRESULT 的异常:0x8013141A)---> System.Security.SecurityException:强名称验证失败。 (来自 HRESULT 的异常:0x8013141A) --- 内部异常堆栈跟踪结束 --- 在 Microsoft.Crm.Services.Utility.CrmSvcUtil.Main(String[] args)
我阅读了很多关于关闭强名称检查和添加例外的博客和 MS 社区帖子 - 它们都不起作用。
我查看了 AssemblyInfo.cs 并没有看到对 AssemblyKeyFile 的任何引用,所以我添加了一个 - 没有任何区别。我用 sn.exe 尝试了几件事,包括“sn -Vr *”,但这也没有用。我使用 ildasm 检查 GeneratePicklistEnums.dll,它显示为版本 0.0.0.0,所有引用的程序集都有版本号。
有什么建议吗?
--- 更新: 我终于通过返回 SDK 并将以下文件从该 BIN 文件夹复制到我的项目 BIN 文件夹中来运行代码:
Microsoft.Xrm.Tooling.Connector
Microsoft.IdentityModel.Clients.ActiveDirectory
Microsoft.Xrm.Tooling.CrmConnectControl
Microsoft.Crm.Sdk.Proxy
Microsoft.Xrm.Sdk
但它仍然没有获得版本或强名称。
【问题讨论】:
-
您将它们复制到您的 bin 文件夹中?尝试更新您的项目引用以指向 SDK 的 bin 文件夹中的 dll(更好的是,使用 nuget 上可用的程序集)。另外,您说您的代码可以运行,但它仍然没有获得版本或强名称....您是说您的代码比上次更远,但您仍然遇到同样的错误?
标签: c# sdk dynamics-crm