简而言之,现在可以在托管代码中编写 Explorer 扩展,前提是您使用的是 .NET 4 或更高版本。
This may not answer your question, but it is important information related to your question:
You said,
I understand ... that you shouldn't code explorer extensions in managed code
This is no longer true.
This used to be true because the multiple versions of the CLR could not be loaded into a single process. For example, Explorer could not load an extension that used both .NET 2 and .NET 1; the host process would fail to load the second CLR version.
But with .NET 4, which comes with a new CLR, you can now run multiple versions of the CLR in the same process. So if you write your code using .NET 4, you're no longer at risk of making host processes error out.
In short, it is now OK to write Explorer extensions in managed code, provided you're using .NET 4 or greater.
发布评论
评论(1)
这可能无法回答您的问题,但它是与您的问题相关的重要信息:
您说,
这不再是真的。
过去确实如此,因为 CLR 的多个版本无法加载到单个进程中。例如,Explorer 无法加载同时使用 .NET 2 和 .NET 1 的扩展;主机进程将无法加载第二个 CLR 版本。
但是,使用带有新 CLR 的 .NET 4,您现在可以在同一进程中运行多个版本的 CLR。因此,如果您使用 .NET 4 编写代码,则不再面临主机进程出错的风险。
简而言之,现在可以在托管代码中编写 Explorer 扩展,前提是您使用的是 .NET 4 或更高版本。
This may not answer your question, but it is important information related to your question:
You said,
This is no longer true.
This used to be true because the multiple versions of the CLR could not be loaded into a single process. For example, Explorer could not load an extension that used both .NET 2 and .NET 1; the host process would fail to load the second CLR version.
But with .NET 4, which comes with a new CLR, you can now run multiple versions of the CLR in the same process. So if you write your code using .NET 4, you're no longer at risk of making host processes error out.
In short, it is now OK to write Explorer extensions in managed code, provided you're using .NET 4 or greater.