Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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_Versioning - Fatal编程技术网

处理单个c#dll(插件)的多个版本

处理单个c#dll(插件)的多个版本,c#,plugins,versioning,C#,Plugins,Versioning,我有一个类似于和的挑战,另外还有一个头疼的问题,那就是能够指定要使用的版本。我目前的想法是简单地使用控制台应用程序,文件夹按版本命名。然后我会找到文件夹并使用Process按已知名称加载console应用程序 我想避免写和读文本,这是控制台应用程序与我的“控制”windows窗体应用程序对话的唯一真实方式。使用DLL似乎是一种可能,但我以前并没有做过太多动态加载的工作,而且这两种方式看起来都相当混乱 我已经快速查看了,但它仍在开发中,目标是.NET4.0,我可能可以查看它,尽管我需要相对快速的解

我有一个类似于和的挑战,另外还有一个头疼的问题,那就是能够指定要使用的版本。我目前的想法是简单地使用控制台应用程序,文件夹按版本命名。然后我会找到文件夹并使用
Process
按已知名称加载console应用程序

我想避免写和读文本,这是控制台应用程序与我的“控制”windows窗体应用程序对话的唯一真实方式。使用DLL似乎是一种可能,但我以前并没有做过太多动态加载的工作,而且这两种方式看起来都相当混乱

我已经快速查看了,但它仍在开发中,目标是.NET4.0,我可能可以查看它,尽管我需要相对快速的解决方案


访问特定版本还有其他想法吗?

最后,我使用了一个著名的文件夹结构来包含不同版本的控制台应用程序


不,它不干净,而且可能不是最好的方法。然而,我无法控制控制台应用程序/DLL,这一点也不需要向与我一起工作的研究人员解释太多。他们知道研究,C#只是一个工具。

MEF,我认为,是一个不错的选择,可以与VS2008和.NET 3.5 SP1一起使用。我确实与MEF进行了一次尝试,但最终使用控制台应用程序要简单得多。还有一个额外的好处,就是可以只使用参数运行—这在Windows计算群集作业管理器中非常方便。