5

プロジェクトを Visual Studio 2010 から Visual Studio 2012 に移動していますが、次のようなコンパイラ エラーが発生していVSConstantsます。

Error   16  The name 'VSConstants' does not exist in the current context

Microsoft.VisualStudio.Shell が参照されていることを確認し、Microsoft.VisualStudio.Shell.11.0 と Microsoft.VisualStudio.Shell.10.0 も参照しようとしました。.cs ファイルもアセンブリを使用していることを確認しました ( using Microsoft.VisualStudio.Shell)。

VSConstantsVisual Studio 2012を入手する方法について何かアイデアはありますか? そうでない場合、Visual Studio 2012 で使用できる同等のものはありますか? 現在 と を使用VSConstants.E_FAILしていVSConstants.E_NOINTERFACEます。

ありがとう!

4

2 に答える 2

5

http://www.microsoft.com/en-au/download/details.aspx?id=30668から VS 2012 SDK がインストールされていることを確認してください。

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.11.0.dllプロジェクトへの参照として追加する必要があります

そのアセンブリを使用するには、4.5 フレームワークをターゲットにする必要があります。

または、アップグレードしたばかりのプロジェクト... フレームワークのバージョンを 4.5 に変更し、見つからなかったプロジェクト参照を削除するだけで済みました。ReSharper が新しいものを教えてくれるだろうと思っていましたが、とにかくビルドされました。これは SDK をインストールした後であることに注意してください。

于 2012-11-09T10:20:12.700 に答える
1

Visual Studio 2012 でMicrosoft の "Designer View Over XML Editor" ( http://code.msdn.microsoft.com/Designer-View-Over-XML-20a81f17 )を試したところ、同じ問題が発生しました。

Visual Studio 2012 は、ソリューションとそのプロジェクトをアップグレードしました。問題ありません。ただし、ソリューションは構築されません。「Microsoft.VisualStudio.Shell.10.0」への参照 (「Microsoft.VisualStudio.Shell.11.0」ではなく、新しいターゲットに対して同じことを行いますが、類似しています) への参照は、ビルドされているため解決できないことが判明しました。 .NET の新しいバージョン。出力ウィンドウでも次のように述べています。

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): 警告 MSB3274: プライマリ参照 "Microsoft.VisualStudio.Shell.10.0" は、ビルドされたため解決できませんでしたこれは、現在対象となっているフレームワーク「.NETFramework,Version=v4.0」よりも上位のバージョンです。

基本的に、プロジェクトのアップグレードにより、誤って古いバージョンの .NET がプロジェクトに残されました。そこで、プロジェクトのプロパティ ページを開き、.NET 4.5 に変更しました。これにより、ソリューションが構築されました。

しかし、それが構築された後、他の問題がありました。Visual Studio 2012 でデバッグすると、競合する 2 つのバージョンの XmlEditor がありました。プロジェクトで参照されているバージョンは、Visual Studio 10.0 を対象としています。そのため、適切に機能させるには、さらにバージョンを変更する必要がありました。

于 2013-05-03T09:56:45.593 に答える