我在一个单独的进程中使用MAF [Managed Add-In Framework]激活我的插件。
问题是它为每个提供了默认名称“AddInProcess32” 插件作为一个单独的进程运行。
我可以为MAF创建的流程提供自定义名称吗?如果是这样的话?
PS:为什么我要给自定义名称?因为我不想让用户误杀过程...... 我想给进程一个名称,清楚地表明它是我应用程序的一部分。
答案 0 :(得分:2)
虽然确实令人满意,但遗憾的是,这不可能,正如Dos095-russ在回答相同问题How to specify AddIn process names?(那里的+1)时所正确分析的那样。
为了使赏金至少值得你这么做,我会添加一些背景:
该进程的文件名在AddInProcess Class的构造函数中是硬编码的,因为该类的目的是为了设计,即提供[s]外部从主机应用程序运行进程外加载项的过程。 备注部分介绍了具体的机制:
运行加载项的可执行文件是从两个文件中的一个获取的 在Windows目录下安装.NET Framework。通过 default,与主机的每字位数匹配的可执行文件 应用程序使用。如果主机是64位进程,则为AddInProcess.exe 运行;否则,运行AddInProcess32.exe。指定方式 选择可执行文件,使用AddInProcess(Platform)构造函数 创建AddInProcess对象。
一些应用程序可能需要的进程外加载项的主要原因在Danielg对Choosing between MEF and MAF (System.AddIn)的回答中得到了适当的总结。如果这些确实不适用于您的用例,您可以探索为Is MEF a replacement for System.Addin?提供的答案和链接,以判断托管可扩展性框架(MEF)是否可能是更好的解决方案 - 它非常适用于它顺便说一下,很容易编程并广泛使用。