新村 剛史
マイクロソフト株式会社デベロッパー&プラットフォーム統括本部Web プラットフォーム推進部
Twitter: @tashinmu
皆さんこんにちは。 昨日、LightSwitch のリリースをお伝えしましたが、本日 LightSwitch の拡張機能を作成する Extensibility Toolkit も公開されました。
Visual Studio LightSwitch 2011 Extensibility Toolkit
このツールキットを使って LightSwitch の拡張機能を作ることが出来ます。作成できる拡張機能の種類は次の通りです。
この Toolkit ですが、インストール方法、使い方で少しクセがあるので、ご紹介しておきます。
最初にインストール方法ですが、先ほどのサイトからダウンロードをクリックして自己解凍形式のファイルを入手し、実行してください。
これを回答すると、下記の3つのファイルが出てきます。
ここでは英語ですがテキストファイルをちゃんと読んでくださいね。読まずにvsix をダブルクリックてインストールするだけだと環境が正しく作られません。
という事で、英語を読むのが面倒だという方のために、手順を書いておきますね。
まずは Visual Studio 2010 に下記のパッケージをインストールしてください。
続いて、”Microsoft.LightSwitch.Toolkit.vsix” をダブルクリックして Toolkit をインストールしてください。 ちなみに、vsix は Visual Studio に対する拡張機能のインストーラーになります。LightSwitch の拡張機能もこの仕組みを利用してインストールするようになります。
そして、ここが重要です。 ”Microsoft.LightSwitch.Toolkit.targets” のファイルを手動で下記のディレクトリにコピーしてください。
64bit: %ProgramFiles(x86)%\MSBuild\Microsoft\VisualStudio\LightSwitch\v1.0
32bit: %ProgramFiles%\MSBuild\Microsoft\VisualStudio\LightSwitch\v1.0
これで環境を作ることが出来ました。 ということで、今度は Extension のソリューションを作るところまでを紹介したいと思います。
まずは、ソリューションを新規作成します。 インストールされたテンプレートの 「LightSwitch」の下の 「Extensibility」に C# 用、VB 用のテンプレートがありますので、好きな方でソリューションを作成してください。
生成されたプロジェクト群をソリューションエクスプローラーで見てみましょう。
この状態は拡張機能を作成する一番シンプルな構成ですが、ほぼ何もない状態です。さすがにここから拡張を作成するのはかなり厳しい作業となります。 (Beta 時点で提供していた Blank Extension はこの状態でした。)
ここから、先ほど紹介した6種類の拡張機能を作成するためには、それぞれの種類に応じたファイルが必要になります。 ということで、ここからがちょっと癖のある方法になります。
ソリューション エクスプローラーから “Lspkg” というプロジェクトを右クリックして、追加 –> 新しい項目をクリックします。
そうすると、ここで拡張機能の種類を選択する画面が表示されます。
今回はこの中から Control を選んで追加ボタンを押してみましょう。
すると、Control の拡張に必要なファイルが生成され、後は必要なコードを記述していくだけになります。
実際のコードの書き方に関しては、後々 Blog で紹介していきたいと思いますが、すぐにでも拡張機能の開発をされたい方は英語ですが、こちらのサイトを参照していただければと思います。
Extending Visual Studio LightSwitch
Xp環境ですが、.vsixの実行時にPathTooLongExceptionで失敗しました。
エラーログを貼っておきます。
2011/09/14 10:38:06 - インストール エラー : System.IO.PathTooLongException: C:\Documents and Settings\XXXXXX.XXXX\Local Settings\Application Data\Microsoft\VisualStudio\10.0\Extensions\Microsoft\LightSwitch 2011 Toolkit\1.0\Items\CSharp\1033\LightSwitchScreenTemplate.Design.zip: LightSwitchScreenTemplate.Design.vstemplate
場所 Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.BeginInstall(IInstallableExtension installableExtension, Boolean perMachine, AsyncOperation asyncOp)
場所 Microsoft.VisualStudio.ExtensionManager.ExtensionManagerService.InstallWorker(IInstallableExtension extension, Boolean perMachine, AsyncOperation asyncOp)