无法访问Microsoft.Xrm命名空间

时间:2012-09-11 14:52:16

标签: c# visual-studio-2010 dynamics-crm dynamics-crm-2011 xrm

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

问题是在编译过程中我得到的错误是:

  

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

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

我们如何解决这个问题?

11 个答案:

答案 0 :(得分:24)

仔细检查项目设置,了解您正在使用的Target Framework。如果是 .NET Framework 4 Client Profile ,请尝试将其更改为 .NET Framework 4

答案 1 :(得分:23)

我用新的2015款dt替换我的crm 2013 dlls时收到了这个。

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

  

主要参考" Microsoft.Xrm.Client,版本= 5.0.9689.2166,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35,   ProcessorArchitecture用于= MSIL"无法解决,因为它已建成   反对" .NETFramework,Version = v4.5.2"框架。这是一个更高的   版本比目前的目标框架   " .NETFramework,版本= V4.5.1"

当我检查时,我只安装了.Net 4.5.1,因此在安装.Net 4.5.2 Developper 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/

答案 2 :(得分:2)

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

Thx @Jason Lattimer。你的回答让我知道如何解决我的问题。

祝您好运CRM开发人员!

答案 3 :(得分:2)

这可能与此特定问题不符,但我会将其添加为检查其他人的情况,以防Google将其指向此处,就像对我一样。

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

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

答案 4 :(得分:1)

在更改为.NET Framework 4并将.NET Framework更改为3.5然后再更改为4.0之后,我的项目仍然无效。

当我选择“添加参考”窗口提供的选项时,它无效。

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

答案 5 :(得分:1)

我有.NET 4.0作为我的目标框架,我有这个编译错误。我尝试将其更改回3.5然后再回到4.0并且没有修复它。

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

答案 6 :(得分:1)

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

问题在于我使用的CRM SDK版本:2015年(不想知道原因!)。

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

答案 7 :(得分:1)

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

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

答案 8 :(得分:1)

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

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

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

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

答案 9 :(得分:1)

如前所述,

  

原因是CRM 2015 SDK建立在.Net 4.5.2框架和   Visual Studio不支持4.5.2。

     

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

替代方法可能是将Microsoft.Xrm.Sdk.dll替换为旧CRM SDK中的文件。我使用VS2010,CRM 2011 SDK文件解决了所有编译器错误。

P.S。将项目切换到.NET 3.5并返回到4.0没有帮助

答案 10 :(得分:0)

更新NuGet包帮助我解决问题