0

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

我找到了很多解决方案(这是其中之一),但只有当我拥有这个程序集的源代码时,所有解决方案才有效。我没有。而且我不能“将 VS 项目添加到 AOT”并使用 VS 插件部署它。

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

4

1 回答 1

3

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

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

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

您还可以通过将 dll 添加到 GAC 来部署它们,如下所示: Axilicious:AX2012 DLL 部署以及 AX 如何在运行时绑定 DLL

总结主要区别是:

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

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

于 2014-04-08T12:34:03.480 回答