4

さて、私は Visual Studio 2012 にPAWN 言語のサポートを追加したいと考えています。

しかし、経験不足と、編集できるチュートリアル/アドインがないため、本当に難しい作業です。

今のところ、私はファイルタイプとコンパイラを追加したいだけです。Intellisense は必要なく、構文の強調表示には C の構文強調表示機能を使用できます。

OOK 言語の実装と Boo 言語があることは知っていますが、これらのアドインは VS2010 用であり、VS2012 用にはコンパイルされません。

どうすればこれを達成できますか?

編集/ベースとして使用/例として使用できる言語アドイン(VS2012用)はありますか?

私の最後の試みでは、黒いウィンドウ/使用できない VS2012 IDE が発生しました。

4

2 に答える 2

18

Visual Studio 2010の公式言語拡張サンプルは、 Iron Python Integration サンプルでした。

ここからダウンロードできます: IronPython Integration。ここに関連ドキュメントがあります: Visual Studio IronPython Integration Deep Dive

残念ながら、私の知る限り、このサンプルは Visual Studio 2012 用に更新されていません。ただし、Visual Studio 2012 に変換する手順は次のとおりです。

  1. ここから Visual Studio 2012 SDK をインストールします: Microsoft Visual Studio 2012 SDK
  2. Iron Python 統合サンプルをダウンロードし、ディスクのどこかに解凍します
  3. open IronPython.sln、およびすべてのアップグレード変換を受け入れます
  4. プロジェクトのプラットフォーム ターゲットを からAnyCpuに変更しますx86
  5. 一部のプロジェクトでは、Visual Studio 11 アセンブリ (.NET 4.5 に対してビルド) への参照が正しくない (自動ヒント付き) ため、そのままではコンパイルされません。それらを Visual Studio 10 アセンブリに戻します。たとえば、IronPython.Console プロジェクトの Microsoft.VisualStudio.ExtensibilityHosting.dll は、C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies.
  6. IronPython.Projectプロジェクトをスタートアップ プロジェクトとして定義し、そのデバッグ パラメータを更新します。開始アクションは、デフォルトで設定された (VS 2010 シェルC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe) 外部プログラムではなく、(VS 2012 シェル) 外部プログラムを開始する必要があります。C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exeコマンドライン引数はに設定する必要があります/RootSuffix Exp
  7. すべてのベース テンプレートを更新して、VS 2010 ディレクトリだけでなく、VS 2012 ディレクトリを使用するようにしIronPython.targetsます。すべての .pyproj ファイルで文字列を検索し、次のように VS 2012 ケースを追加します。

前:

  <PropertyGroup>
    <!-- Set the IronPythonPath property by proving in different locations where Iron Python could be installed -->
    <!-- Regular LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
    <!-- Experimental LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Integrated Shell -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0\IronPython.targets')">$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0</IronPythonPath>
  </PropertyGroup>

後:

  <PropertyGroup>
    <!-- Set the IronPythonPath property by proving in different locations where Iron Python could be installed -->
    <!-- Regular LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
    <!-- Experimental LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Regular LocalAppData VS10212 -->
      <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\11.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\11.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Experimental LocalAppData VS2012-->
      <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\11.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\11.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Integrated Shell -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0\IronPython.targets')">$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0</IronPythonPath>
  </PropertyGroup>

それでおしまい。コンパイルして実行します (登録の謎のため、どちらも最初は時間がかかる場合があります)。

Visual Studio 2012 から新しい Iron Python プロジェクトを開始したときの結果を次に示します。 ここに画像の説明を入力

そして構築するとき: ここに画像の説明を入力

于 2013-01-08T10:30:32.937 に答える
5

Visual Studio 2012 および以前のバージョンの Visual Studio 用に更新されたように見えるこのCodeProject 記事「C# とソースを使用した拡張機能パッケージの開発」をご覧ください。

これは、アドインの作成に関する Microsoftの記事です。

これは、 CodeProjectの 2番目の記事であり、シリーズ Visual Studio の拡張 (第 2 部、アドインの作成) の一部です。

于 2012-12-30T03:26:53.743 に答える