我在单独的进程中使用 MAF[Managed Add - In Framework] 激活我的插件。
问题是它为作为单独进程运行的每个插件提供了默认名称“AddInProcess32”。
我可以给 MAF 创建的进程一个自定义名称吗?如果有怎么办?
PS:为什么我要给自定义名称?因为我不希望用户错误地杀死进程......我想给进程一个名称,清楚地表明它是我的应用程序的一部分。
虽然确实可取,但不幸的是,这是不可能的,正如 Dos095-russ 已经在他对相同问题How to specify AddIn process names?的回答中正确分析的那样 (那边+1)。
为了让赏金至少值得你花点时间,我会添加一些上下文:
该进程的文件名在AddInProcess 类的构造函数中被硬编码,因为该类的设计目的是提供[s] 一个外部进程,用于从主机应用程序在进程外运行加载项。备注部分涉及具体机制:
运行加载项的可执行文件是从 Windows 目录下随 .NET Framework 安装的两个文件之一获得的。默认情况下,使用与主机应用程序的每字位数匹配的可执行文件。如果主机是 64 位进程,则运行 AddInProcess.exe;否则,将运行 AddInProcess32.exe。要指定选择可执行文件的方式,请使用 AddInProcess(Platform) 构造函数来创建 AddInProcess 对象。
Danielg 对在 MEF 和 MAF (System.AddIn) 之间选择的回答中正确总结了某些应用程序可能需要进程外加载项的主要原因。如果这些实际上不适用于您的用例,您可以探索为MEF 是否可以替代 System.Addin 提供的答案和链接?为了判断,Managed Extensibility Framework (MEF) 实际上是否可能是一个更好的解决方案——顺便说一句,它非常适合它的功能,非常容易编程并因此被广泛使用。