Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何部署插件使用的实用程序DLL?_C#_Plugins_Dynamics Crm Online_Ilmerge_Dynamics Crm 2015 - Fatal编程技术网

C# 如何部署插件使用的实用程序DLL?

C# 如何部署插件使用的实用程序DLL?,c#,plugins,dynamics-crm-online,ilmerge,dynamics-crm-2015,C#,Plugins,Dynamics Crm Online,Ilmerge,Dynamics Crm 2015,我已经进入了一个项目,该项目使用的架构是所有实用程序类都存储在与插件相同的项目中。只要有几个插件具有不同的实用程序,就可以了 然而,我注意到,随着插件数量的增加,许多单独的实用程序类会重叠。所以,我想把所有的实用程序都放到一个单独的项目中。我担心一旦我离开客户,维护起来会太复杂,因为他们对技术不感兴趣 到目前为止,我得到的最佳解决方案是促进ILMerge。然而,我想知道是否有更简单的方法。最佳的方法是,如果我可以让CRM“看到”实用程序DLL,只需上传它。我是否可以注册一个插件可以引用的非插件、

我已经进入了一个项目,该项目使用的架构是所有实用程序类都存储在与插件相同的项目中。只要有几个插件具有不同的实用程序,就可以了

然而,我注意到,随着插件数量的增加,许多单独的实用程序类会重叠。所以,我想把所有的实用程序都放到一个单独的项目中。我担心一旦我离开客户,维护起来会太复杂,因为他们对技术不感兴趣


到目前为止,我得到的最佳解决方案是促进ILMerge。然而,我想知道是否有更简单的方法。最佳的方法是,如果我可以让CRM“看到”实用程序DLL,只需上传它。我是否可以注册一个插件可以引用的非插件、非可执行DLL?

否,如果您使用的是CRM Online,则不支持此功能


如果您在本地运行CRM,则可以将实用程序DLL部署到磁盘或在GAC中注册它们。在任何一种情况下,您都需要确保在每个CRM服务器上更新它们—如果有多个。

因此,对于CRM Online,我的选择是:(1)ILMerge,(2)每个插件项目中的Utils.cs副本,或(3)同一项目中的所有插件。。。我想我会选择最后一个选项——没有那么多的实体被插件化,所有的东西都将被保存在一个更紧密的解决方案结构中+1为了清晰和快速回复。我在1和3之间来回奔波,通常与3一起奔波——但与1一起奔波的大型项目除外。我写过一个使用ILMerge()更简单的方法,但它似乎需要VS2013——正如有人报告的VS2012问题一样。它利用NuGet并使用约定来避免手动创建批处理文件或修改构建脚本。