无法访问 Microsoft.Xrm 命名空间

Posted

技术标签:

【中文标题】无法访问 Microsoft.Xrm 命名空间【英文标题】:Can't access Microsoft.Xrm namespace 【发布时间】:2012-09-04 13:11:20 【问题描述】:

我已下载 CRM Dynamics SDK 并将其保存在本地目录中。在我的代码中,我使用了EntityCollection(在与Xrm 命名空间相关的其他类中),这意味着我需要添加using Microsoft.Xrm.Sdk;

问题是在编译过程中我收到错误消息:

命名空间“Microsoft”中不存在类型或命名空间名称“Xrm”(您是否缺少程序集引用?)

所以,我仔细检查了引用是否已完成,并且非常准确地,我发现microsoft.xrm.sdk 确实在我的列表中。可以肯定的是,我已将其删除并通过指向具有相同名称的 DLL 再次添加它。但无济于事......令人震惊的是,我的同事使用相同的代码并且它在他的机器上编译(唯一的区别是他在 Win 7 上,而我在 Win 8 上)。

我们如何解决这个问题?

【问题讨论】:

迁移到 CRM 2015 SDK 时出现此错误,问题是我没有针对正确的框架,即:.Net 4.5.2,因为 MS 在此最新版本中切换了它。更多细节在这里:syntaxwarriors.com/2015/… 【参考方案1】:

仔细检查您的项目设置以查看您使用的目标框架。如果是 .NET Framework 4 客户端配置文件,请尝试将其更改为 .NET Framework 4

【讨论】:

我自己也看到了。这是令人讨厌的错误。默认设置绝对应该是完整的 .NET 4,而不是割礼的版本。不管怎么说,还是要谢谢你。我会确保对你的答案进行评分并对问题做同样的事情,因为这种东西很容易找到。单独工作时,这些东西会让人发疯......【参考方案2】:

我的框架已经设置为 .NET Framework 4,因此在 4 客户端配置文件和常规 4 之间切换的解决方案不适用。我做的一个技巧是将 .NET Framework 更改为 3.5,然后再改回 4.0。我希望这会帮助一些人。

谢谢@Jason Lattimer。您的回答为我提供了解决问题的线索。

祝 CRM 开发人员好运!

【讨论】:

这样做并没有解决我的 XRM 命名空间错误,但确实解决了另一个错误。有时根本没有解释。 很高兴我能帮上忙 :)【参考方案3】:

在更改为 .NET Framework 4 并将 .NET Framework 更改为 3.5 再回到 4.0 后,我的项目仍然无法运行。

当我选择“添加参考”窗口给出的选项时它不起作用。

对我有用的是单击“添加引用”窗口中的浏览按钮并查找 Microsoft.Xrm.Sdk.dll 文件

【讨论】:

【参考方案4】:

我将 .NET 4.0 作为我的目标框架,但我遇到了这个编译器错误。我尝试将其更改回 3.5,然后再更改回 4.0,但这并没有解决问题。

为我解决问题的是删除项目目录中的 bin、obj 和 tools 文件夹。我不明白为什么这样做的细节,但它对我有用。

【讨论】:

【参考方案5】:

我在用新的 2015 dll 替换我的 crm 2013 dll 时收到此消息。

以上解决方案都不适合我。 但最终让我走上正轨的是这个警告(它被列为命名空间错误下方的警告):

主要参考“Microsoft.Xrm.Client, Version=5.0.9689.2166, 文化=中性,PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" 无法解析,因为它已构建 针对“.NETFramework,Version=v4.5.2”框架。这是一个更高的 比当前目标框架的版本 ".NETFramework,Version=v4.5.1"

当我检查时,我只安装了 .Net 4.5.1,所以在安装 .Net 4.5.2 Developer pack 并将我的项目的目标框架切换到这个之后,一切都恢复了。

常规的 4.5.2 更新不足以在 VS 中获取此版本的 .net,您需要 developper pack

来源:http://www.syntaxwarriors.com/2015/using-crm-2015-sdk-gives-error-that-xrm-does-not-exist-in-the-namespace/

【讨论】:

有趣,我刚刚遇到了这个答案,显然我过去曾对此表示赞同。这意味着过去的我有同样的问题,通过使用这篇文章解决了它,因此完全忘记了它【参考方案6】:

我遇到了这个错误,在我的情况下,在尝试了上述所有解决方案和网络上的其他解决方案后都没有成功,最终我找到了解决方案。

问题出在我使用的 CRM SDK 版本中:2015(不想知道为什么!)。

已下载 CRM 2013 SDK 版本,将程序集引用更改为该版本,问题就消失了。

【讨论】:

CRM 2015 版本是否可行,但您遇到了不同的问题(其他方法解决了这个问题,而不是回到 2013 年但调用了 这样做)?也许您引用了错误版本的 .NET 框架,当您进入 2013 年时(这本身并不重要,您也不知不觉切换到了正确版本的 .NET 框架? 我在尝试解决问题时尝试了 .net 版本 3 到 4.5。我的时间已经不多了,所以我没有继续调查这个问题。这(使用 JDK 2013)是为那些没有使用任何其他解决方案的人提供的建议。问候康拉德 好建议,无论如何,所以我给了它+1。只是有点挑剔:我认为 JDK 2013 没有帮助。 SDK 2013 做到了,对吧? JDK = Java Developer Kit,呵呵。【参考方案7】:

这可能与此特定问题不匹配,但我会将其添加为检查其他人的内容,以防 Google 像对我一样将他们引导到这里。

在我的例子中,我遇到了很多错误,例如“错误 CS0234:类型或名称空间名称 'Client' 不存在于名称空间 'Microsoft.Xrm' 中”。

添加 "Microsoft.CrmSdk.Extensions" NuGet 包修复了我的编译问题。

【讨论】:

【参考方案8】:

原因是 CRM 2015 SDK 是基于 .Net 4.5.2 Framework 构建的,而 Visual Studio 不支持 4.5.2。

只需下载 .Net Framework 4.5.2 转到项目属性并更改框架。

【讨论】:

【参考方案9】:

我的 CRM 2011 插件也遇到了同样的问题。就我而言,上述解决方案均无效。

在我的代码中,我使用的是早期绑定类。生成此类文件时,我正在使用以下行以及导致错误的其他设置。

/codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"

一旦我添加了这个没有 codeCustomization 的新类文件,它就会删除所有错误。

【讨论】:

【参考方案10】:

如前所述,

原因是 CRM 2015 SDK 是基于 .Net 4.5.2 框架和 Visual Studio 不支持 4.5.2。

只需下载 .Net Framework 4.5.2 Goto Project Properties 并更改 框架。

另一种方法是将 Microsoft.Xrm.Sdk.dll 替换为旧版 CRM SDK 中的文件。我用的是VS2010,CRM 2011 SDK文件解决了所有编译错误。

附:将项目切换到 .NET 3.5 并返回到 4.0 并没有帮助

【讨论】:

【参考方案11】:

更新 NuGet 包帮助我解决了问题

【讨论】:

以上是关于无法访问 Microsoft.Xrm 命名空间的主要内容,如果未能解决你的问题,请参考以下文章

Dynamics CRM 消息类列表

无法访问添加的服务参考

如何访问 Windows.Storage 命名空间?

限制 Kubernetes 服务帐户访问特定命名空间

WCF 服务访问权限:没有对此命名空间的访问权限

js单例——如何避免通过命名空间访问类成员