18

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

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

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

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

我们如何解决这个问题?

4

11 回答 11

24

仔细检查您的项目设置以查看您正在使用的目标框架。如果是.NET Framework 4 Client Profile尝试将其更改为.NET Framework 4

于 2012-09-11T15:30:06.350 回答
23

我在用新的 2015 替换我的 crm 2013 dll 时收到了这个。

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

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

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

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

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

于 2015-01-14T12:24:19.410 回答
2

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

谢谢@Jason Lattimer。您的回答给了我如何解决我的问题的线索。

祝 CRM 开发人员好运!

于 2013-02-22T13:19:19.783 回答
2

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

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

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

于 2015-08-27T21:33:43.367 回答
1

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

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

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

于 2014-06-11T23:26:06.630 回答
1

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

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

于 2014-06-19T03:45:45.007 回答
1

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

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

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

于 2015-02-24T19:04:46.513 回答
1

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

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

于 2015-09-16T09:31:32.553 回答
1

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

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

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

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

于 2016-05-20T10:16:19.053 回答
1

正如先前所说,

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

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

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

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

于 2016-05-31T06:38:35.780 回答
0

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

于 2016-09-06T06:37:57.143 回答