Can't access Microsoft.Xrm namespace

2019-04-04 02:50发布

问题:

I've downloaded CRM Dynamics SDK and keep it in a local directory. In my code, I'm using EntityCollection (amongst other classes related to Xrm namespace), which means that I need to add using Microsoft.Xrm.Sdk;.

The problem is that during compilation I get errors saying that:

The type or namespace name 'Xrm' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

So, I double check that the reference is made and, very accurately, I see that microsoft.xrm.sdk indeed is in my list. Just to be sure, I've removed it and added it again by pointing to the DLL with the same name. To no avail, though... The flabbergasting thing is that my colleague uses the same code and it compiles on his machine (the only difference being that he's on Win 7 and I'm on Win 8).

How do we kill this problem?

回答1:

Double check in your project settings to see which Target Framework you are using. If it is .NET Framework 4 Client Profile try changing it to .NET Framework 4.



回答2:

I received this when replacing my crm 2013 dlls with the new 2015 ones.

None of the above solutions worked for me. But what eventually led me on the right track was this warning (it was listed as a warning below the namespace errors):

The primary reference "Microsoft.Xrm.Client, Version=5.0.9689.2166, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" could not be resolved because it was built against the ".NETFramework,Version=v4.5.2" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.5.1"

And when I checked I only had .Net 4.5.1 installed so after installing .Net 4.5.2 Developper pack and switching the target framework of my projects to this everything worked again.

The regular 4.5.2 update is not enough to get this version of .net in VS, you need the developper pack

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



回答3:

I had my framework already set to .NET Framework 4 therefore solution of switching between 4 Client profile and regular 4 did not apply. A trick I did was changing .NET Framework into 3.5 and then back to 4.0. I hope this will help some people.

Thx @Jason Lattimer. Your answer gave me a clue how to solve my problem.

Good luck CRM developers!



回答4:

This may not match this specific problem, but I'll add this as something to check for others in case Google directs them here like it did for me.

In my case, I was getting a lot of errors like, "error CS0234: The type or namespace name 'Client' does not exist in the namespace 'Microsoft.Xrm'".

Adding the "Microsoft.CrmSdk.Extensions" NuGet package fixed my compilation issues.



回答5:

After changing to .NET Framework 4 and changing .NET Framework into 3.5 and then back to 4.0, my poject was still not working.

It didn't work when I selected the option given by the "add Reference" window.

What worked for me was to click on the browse button in the "add Reference" window and look for the Microsoft.Xrm.Sdk.dll file



回答6:

I had .NET 4.0 as my target framework and I had this compiler error. I tried changing it back to 3.5 and then back to 4.0 and that didn't fix it.

What did fix the problem for me was deleting the bin, obj and tools folders in my project directory. I don't understand the details of why this worked, but it worked for me.



回答7:

I had this error and in my case, after trying all the above solutions and others on the web with no success, finally I came to a solution.

The problem was in the version of CRM SDK that I was using: 2015 (don´t wanna know why!).

Downloaded CRM 2013 SDK version, changed the assembly references to that version and the problem was gone.



回答8:

Reason for it is CRM 2015 SDK was built on .Net 4.5.2 Framework and the Visual studio does not support 4.5.2.

Just download .Net Framework 4.5.2 Goto Project Properties and change the framework.



回答9:

I was having the same issue with my CRM 2011 Plugin. In my case none of the above solution worked.

In my code I am using early bound class. When generating this class file i was using following line along with other settings which was causing the error.

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

Once I added this new class file without codeCustomization, it removed all errors.



回答10:

As mentioned before,

Reason for it is CRM 2015 SDK was built on .Net 4.5.2 Framework and the Visual studio does not support 4.5.2.

Just download .Net Framework 4.5.2 Goto Project Properties and change the framework.

Alternate way could be to replace Microsoft.Xrm.Sdk.dll with file from older CRM SDK. I use VS2010, and CRM 2011 SDK file solved all compiler errors.

P.S. Switching project to .NET 3.5 and back to 4.0 did not helped



回答11:

Updating NuGet Package helped me to solve the problem