C# 如何在服务器端使用Dynamics NAV 2016中的控件加载项?

C# 如何在服务器端使用Dynamics NAV 2016中的控件加载项?,c#,controls,add-in,microsoft-dynamics,C#,Controls,Add In,Microsoft Dynamics,在Microsoft和其他公司的一些教程的帮助下,我为Dynamics NAV2016创建了一个小型控件加载项 此加载项放置在客户端的“加载项”文件夹中时工作正常。我被要求让加载项在服务器上工作,因此它不必分发给每个用户 微软没有提供任何关于这方面的信息,即使有标准的插件可以在服务器端工作 简单地移动外接程序dll并重新创建外接程序的引用似乎不起作用 我尝试了各种模糊的方法来让这个插件在服务器端被检测到。以下过程只工作了一次,但在我编辑C#代码时没有再次工作: 从客户端加载项文件夹和加载项表中

在Microsoft和其他公司的一些教程的帮助下,我为Dynamics NAV2016创建了一个小型控件加载项

此加载项放置在客户端的“加载项”文件夹中时工作正常。我被要求让加载项在服务器上工作,因此它不必分发给每个用户

微软没有提供任何关于这方面的信息,即使有标准的插件可以在服务器端工作

简单地移动外接程序dll并重新创建外接程序的引用似乎不起作用

我尝试了各种模糊的方法来让这个插件在服务器端被检测到。以下过程只工作了一次,但在我编辑C#代码时没有再次工作:

  • 从客户端加载项文件夹和加载项表中删除加载项
  • 将外接程序移动到服务器外接程序文件夹并创建新的外接程序表条目
  • 在字段中使用控件加载项创建页面,并创建控件加载项类的DotNet变量(属性RunOnClient=Yes),该变量在“OnInit”中初始化。没有别的了
  • 运行代码单元2,运行新页面(加载项dll现在复制到NAV temp文件夹)
但就像我提到的,这只起了一次作用,从那以后,就再也找不到AddIn了。
有人知道从服务器上运行控件加载项的有效方法吗?

所以我最终自己找到了答案,有点奇怪,但这里是为了防止其他人遇到问题:

  • 将外接程序放在服务器的外接程序文件夹中
  • 将控件外接程序的新条目添加到控件外接程序页面
  • 在应该使用外接程序的页面中,首先必须创建外接程序类的DotNet变量。在OnInit函数中初始化此变量
  • 设置变量后,为控件外接程序创建字段,并在属性中选择控件外接程序
似乎首先需要创建变量才能将程序集复制到temp或其他文件中。如果没有它,可能无法检测到外接程序的某些功能


还需要进行初始化,以确保在初始化要显示的控件加载项之前,加载项已复制到客户端的临时文件夹。如果没有此步骤,将找不到程序集

所以我最终自己解决了这个问题,我找到了答案,有点奇怪,但这里是为了防止其他人对此有问题:

  • 将外接程序放在服务器的外接程序文件夹中
  • 将控件外接程序的新条目添加到控件外接程序页面
  • 在应该使用外接程序的页面中,首先必须创建外接程序类的DotNet变量。在OnInit函数中初始化此变量
  • 设置变量后,为控件外接程序创建字段,并在属性中选择控件外接程序
似乎首先需要创建变量才能将程序集复制到temp或其他文件中。如果没有它,可能无法检测到外接程序的某些功能

还需要进行初始化,以确保在初始化要显示的控件加载项之前,加载项已复制到客户端的临时文件夹。如果没有此步骤,将找不到程序集