搭建一个"顺手"的Dynamics CRM开发/测试环境

这篇文章里我谈一下大多数开发者会使用的典型开发环境:在自己的机器上安装VPC,然后安装OS+AD+SQL+CRM+SharePoint… 总之是一个全面、独立的开发测试环境,然后在主机上安装Visual Studio。如果你也是用这样的环境作开发,我总结了一些方法供你参考,可以提高开发速度: 
  • 关于网卡的设置,我推荐使用3块网卡:一个做VPC内部使用;一个连接Internet(通过主机);一个使用Microsoft Loopback adapter。为什么使用Loopback 呢?因为它可以提供主机和VPC之间不间断的通信,而且你可以在主机的HOST(C:\WINDOWS\system32\drivers\etc\hosts)里面直接指明VPC的Lookback IP地址,而不用经常更改:比如可以设定成 R2     192.168.2.2,这样R2在你机器里的指向就是VPC的地址:192.168.2.2,而主机的Loopback IP当然可以设定成 192.168.2.1。当然连接Internet的第二块网卡也可以用于和VPC通信,但是这个IP可能会经常变动或者有些时候不可用,所以不方便。
  • 既然是CRM开发,你也可以把你的VPC里配置成On-Premise/IFD的访问方式,这样一来你可以在主机上测试你的代码是否也工作在IFD的部署模式下。
  • 关于Plug-in的调试问题参考SDK: http://msdn.microsoft.com/en-us/library/cc151088.aspx ; 关于Workflow Activity的调试问题参考SDK:http://msdn.microsoft.com/en-us/library/cc151143.aspx, 我这里说一下通过主机的Visual Studio来实现远程调试的技巧: 
    1. 由于VS安装在主机上,所以这种调试也算是一种远程调试了。方法是在VPC里运行VS的远程调试程序(只是一个.exe文件,可以从主机里拷贝到VPC) :Visual Studio Remote Debugging Monitor(msvsmon.exe)。
    2. 你需要在主机上保存一个用户名/密码,这样方便访问VPC。方法是在控制面板>>用户帐号>>高级>>管理密码,在这里填上VPC的服务器名,比如R2;用户名,比如Administrator和密码。
    3. 运行这个程序的用户名/密码必须要和主机上运行VS的用户名/密码相一致才可以,比如VPC里是 WIN2K3\Administrator ,密码 Password1 那么在主机上运行VS的用户名必须是Administrator,密码也必须是 Password1 域名不一致没有关系!
    4. 要调试Plug-in,你的dll文件必须部署到VPC里的文件目录下,比如C:\Program Files\Microsoft Dynamics CRM\Server\bin\assembly\ , 注册dll也要注册到文件目录,而不是数据库。
    5. 你可能发现部署的时候提示dll正在使用,除了手工在VPC上运行iisreset之类的回收功能;你还可以在VPC里设置部署前运行一个脚本,这个脚本的功能是回收VPC上CRMAppPool,然后部署就可以正常完成了。如果你主机上没有安装IIS,我这里提供一个PowerShell的脚本,供你调用:
$server="R2";

$co = new-object System.Management.ConnectionOptions;
$co.Authentication=[System.Management.AuthenticationLevel]::PacketPrivacy;
$co.EnablePrivileges=$true

$wmi = [WmiSearcher] "Select * From IIsApplicationPool";
$wmi.Scope.Path = """$server"root"microsoftiisv2";
$wmi.Scope.Options=$co

foreach($crmpool in $wmi.Get())
{
  
if($crmpool.name -eq "W3SVC/AppPools/CRMAppPool")
  {
    
$crmpool.recycle();
  }
}


如果是部署Workflow Activity,还需要重启MSCRMAsyncService服务,参考下图调用:


6. 部署/注册Plug-in/Workflow Activity之后,现在VPC上运行msvsmon.exe,然后在主机VS里选择"Debug">>"Attach to process...",在Qualifier里填入VPC的信息,比如: WIN2K3\Administrator@R2 ,然后Attach到VPC的w3wp.exe进程(Plug-Ins 调试);或者CrmAsyncService.exe进程(Workflow Activity调试),参考下图:


posted @ 2009-09-13 21:29  MicrosoftCRM  阅读(2188)  评论(0编辑  收藏  举报