8

これまで、私はEnvDTEを使用してVisualStudioToolboxを正常に管理してきました。

さまざまなVisualStudioバージョンを処理するためにカスタマイズされたDLLがあります。

EnvDTE.dll-一般的なVS自動化(おそらくすべてのバージョンで機能します)

EnvDTE80.dll-VS2005を処理する

EnvDTE90.dll-VS2008を処理する

EnvDTE100.dll-VS2010に対処する

ただし、VS 2012用のEnvDTE110はありません。これは、これらがこれらのCOMラッパーライブラリを使用する場合とは異なるVS自動化の方法であることを意味しますか?

もしそうなら、例えば、EnvDTEを使用する以外の方法でVS2012プロジェクトとToolboxをリモートで操作する方法は?

4

2 に答える 2

15

EnvDTEのバージョニングがどのように機能するかを誤解していると思います。

Visual Studioは、EnvDTEのすべてのバージョンと下位互換性があります。ただし、新しいバージョンのVisual Studioで追加の拡張性が必要または公開されている場合、MSは、インターフェイスを介してこれを公開する新しいバージョンのEnvDTEをリリースします。

したがって、たとえば、EnvDTE80クラスを使用してVisual Studio 2012と対話できます。VisualStudio2005で使用可能な拡張性に制限されます。または、EnvDTE90を使用して、VisualStudio2008で使用可能な拡張性に制限されます。出てきました。

EnvDTEの新しいバージョンが最新のVSSDKでリリースされていない場合は、EnvDTE100に制限されます。

于 2012-08-27T10:26:00.853 に答える
7

envdte100.dllのみが存在しますが

c:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\

VisualStudio2012では次のように機能します。

Type typeDTE = typeDTE = Type.GetTypeFromProgID("VisualStudio.DTE.11.0");

DTE objDTE = (DTE)Activator.CreateInstance(typeDTE, true);
于 2012-10-28T12:34:52.257 に答える