从AOS部署.net程序集到AX2012中的每个客户端

时间:2014-04-08 08:32:45

标签: axapta dynamics-ax-2012 dynamics-ax-2012-r2

每周一次,我会获得新版本的.net程序集,我需要将其部署到我们的Axapta 2012安装中。我不想将此dll复制到每台计算机上的axapta客户端文件夹。所以我正在寻找将其部署到AOS的方式,并希望它能够自动部署在每个客户端上。

我找到了很多解决方案(这是one of them),但只有在我拥有此程序集的源代码时才能正常工作。我没有。我不能将VS项目添加到AOT'并使用VS加载项进行部署。

有没有办法将.net程序集(作为已编译的DLL)从AOS部署到每个客户端?

1 个答案:

答案 0 :(得分:3)

如果使用“将VS投影添加到AOT”方法无法执行此操作,则可以使用SysFileDeployment类。 Joris DG在他的博文here中证明了这一点。

msdnSysFileDeployment类的描述如下: SysFileDeployment类用于将文件从服务器部署到客户端。

在msdn上,还解释了如何执行此操作。基本上,您需要做的就是扩展此类并指向需要部署的文件(在您的情况下是一个dll)。您还必须更改解决方案的内部版本号以触发部署。

您还可以通过将dll添加到GAC来部署dll,如下所示: Axilicious: AX2012 DLL Deployment and how AX binds DLL’s at runtime

总结主要区别是:

  • 使用visual studio属性:在需要时将其部署到特定于该用户的文件夹(因此每个用户都有一个不同的文件夹)
  • 使用SysFileDeployment:它被复制到客户端bin文件夹,需要重新启动客户端(在Citrix /终端服务上可能出现问题,如Joris在您提供的链接中建议的那样?)
  • GAC:DLL存储在全局程序集缓存中,存储了不同的版本,但您需要提供自己部署它们的机制

我个人会尝试使用SysFileDeployment方法,因为它是MS提供的标准方法。如果您遇到麻烦,可能会得到支持。