The Developer Toolkit takes care of a lot of common development tasks all within Visual Studio, including:
- Code Generation of Entities (similar to CrmSvcUtil.exe)
- Code Generation of Plugin templates
- Entity Registration with CRM
- Web Resource Management
- Deployment of Web Resources, Plugins, Workflows etc..
Here's some of the small issues I've found with the tool - none that I've found to be show stoppers.
Error registering plugins and/or workflows. The resource string "ErrorSerializingRegFile" for the "RegisterPlugin" task cannot be found. Confirm that the resource name "ErrorSerializingRegFile" is correctly spelled, and the resource exists in the task's assembly. C:\Program Files (x86)\MSBuild\Microsoft\CRM\
For whatever reason, the "RegisterFile.crmregister" file in the CrmPackage Project needs to be editable, so if you have it source controlled with TFS or it's read only for some reason - you'll get this message. Just simply check the file out or make the file writable.
The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))
When generating the entities, you might get the above message. This is because of a bug which doesn't get on very well with Solution Folders in your solution. To work-around, simply remove the solution folders from you solution.
The Context Class is missing when you generate the entities
For some reason, the context class is not generated when you generate the LINQ entities as it is in CrmSvcUtil. Luckily, this is not required to use the LINQ functionality - but you'll need to make a few small changes
- Instead of creating a new context, you'll need to create a OrganizationServiceContext instead
- When you query against the OrganizationServiceContext, you'll need to use the CreateQuery<Entity>() syntax instead of the CrmContext.EntitySet syntax in your LINQ Queries
TIP: I'm just working on Javascript, and every time I deploy it deploys the plugins as well, how do I just deploy the Web Resources?
If you want to deploy the web resources but avoid deploying any workflow and plugins (because of the amount of time to register these things), simply change the CrmPackage "RegisterFile.crmregister" file's Build Action from "Register Plugin" to "None". The Build Action option can be found in the Visual Studio properties for the file. This will stop workflows and plugins from registering and save a lot of time when your just working on web resources. If you want to enable registering of plugins & workflows again - simply do the reverse.