VS 2005のプロジェクトTemplates

8794 ワード

前に発表した「GridViewにデータベースの画像が表示されます」でASPに言及した.NET 2.0で提供されているいくつかのStarter Kits fot VS2005は、いくつかのStarter Kitsアプリケーションが「.VSI」拡張子のファイルで提供されています.これはどのような拡張子ですか.なぜ直接インストールでき、Starter KitsアプリケーションプロジェクトをVS 2005の新しいプロジェクトテンプレートに直接埋め込むことができますか?
確かに面白い問題です.VSI、私が間違っていなければ、Visual Studio Installerの略だと思います.では、VSIファイルはいったいどのようにしてVS 2005にプロジェクトのテンプレートを埋め込むのか.これはVS 2005が提供する「Export Template」からお話しします.Export Template項目はFileメニューにあります.一つの例から始めましょう.
1、新しいASP.NET Web Site.後日のテンプレートプロジェクトに固有の機能として使用するコードを作成したり、画像などのフォルダやファイルを配置したりすることができます.このWeb Siteは、Starter Kitsのいくつかの例に似たVS 2005のプロジェクトテンプレートになります.次は、このテンプレートを使用して新しいプロジェクトと比較して、完全に一致しているかどうかを確認するためのプレゼンテーションプロジェクトの画像です.
2、プロジェクトを保存します.次に、Fileメニューから「Export Template」を選択し、次のダイアログボックスを開きます.最初の「プロジェクトtemplate」を選択します.一番下のテンプレートタイプは「Visual C#」を選択し、C#のASPを作成したことを示します.NET Web Siteテンプレート.もちろんあなたの好みでVBを選ぶことができます.NET.
3、次のステップNextを選択します.さらに、テンプレートアイコン、テンプレート名、説明などを設定します.これらの基本属性情報はVS 2005にユーザに表示される.
4、「Finish」を押してエクスポートプロセスを終了します.また、「自動埋め込みVs 2005」を選択し、Finishを押すと、WebSiteプロジェクトを新規作成するウィンドウに、先ほど作成したプロジェクトテンプレートが表示されます.以下の図です.一番下の「Display an explorer......」を選んだら出力ディレクトリも自動的に開きます.このWebSite 1プロジェクトテンプレートを使用して作成したプロジェクトを選択すると、最初の図にリストされているすべてのフォルダやファイル、すべてのコードなどが自動的に含まれます.つまり、最初の図プロジェクトのクローンバージョンです.
これで、スターターKitsでの最終的な同じ効果を達成しました.でもVSIの疑問はまだ解けていない.焦らないでください.実は私たちはもうこのVSIの疑いを解きほぐしています.今、私たちがエクスポートしたプロジェクトのテンプレートファイルWebSite 1を見てみましょう.zip、デフォルトはC:Documents and SettingsAdministratorMy DocumentsVisual Studio 2005My Exported Templatesディレクトリの下にあります.さっきエクスポートしたファイルが意外にもZIPの圧縮ファイルは、自然に解凍して何かを見たいと思っています.解凍後、元のプロジェクト内のすべてのフォルダとファイルのほかに、テンプレートアイコンが1つ増えていることがわかりました.TemplateIcon.MicoとMyTemplate.vstemplateのファイル.手帳で開くvstemplateは、このプロジェクトのテンプレート情報を記述するXMLデータドキュメントです.(文書内容略).
このXMLドキュメントこそ、UltraEditを利用してStarterKitsのTimeTrackerを開くという考えを持っています.VSIファイルは内部構造を見てみると、やはりZIP圧縮パッケージファイルであることがわかります.そこでスターキーズのTimeTrackerをvsiはTimeTrackerと改名した.ZIP、順調にTimeTracker.ZIPは解凍します.TimerTracker圧縮パッケージには、私たちが作成したプロセスと同じフォーマットのZIPファイルのほか、TimeTrackerが含まれています.vscontentのファイル.このvscontentファイルを手帳で開くと、真相が明らかになります.



 
   
<? xml version="1.0" encoding="utf-8" ?> < VSContent xmlns ="http://schemas.microsoft.com/developer/vscontent/2005" >        < Content >              < FileName > TimeTrackerCS.zip </ FileName >              < DisplayName > Time Tracker Starter Kit (C#) </ DisplayName >              < Description > Starter Kit for Web project (General category) </ Description >              < FileContentType > VSTemplate </ FileContentType >              < ContentVersion > 1.0 </ ContentVersion >              < Attributes >                    < Attribute name ="TemplateType" value ="Project" ></ Attribute >                    < Attribute name ="ProjectType" value ="Visual Web Developer" ></ Attribute >                    < Attribute name ="ProjectSubType" value ="CSharp" ></ Attribute >              </ Attributes >        </ Content > </ VSContent >

原来VSIファイルの内部には、ファイル情報を記述するXMLファイルと、Export Templateを使用してエクスポートされたZIP圧縮パッケージの2つのファイルしかありません.
VSIの内部構造を理解してTimeTracker.をvscontentのこのXMLファイル情報はWebSite 1を記述する情報に変更され、主にFileNameをWebSite 1に変更した.zipついでにTimeTracker.vscontentもWebSite 1と改称する.vscontent,WebSite 1を圧縮する.vscontentとWebSite 1.zipファイルは新しいWebSite 1です.zip(ZIP圧縮ファイルのみが受け入れられることに注意)、最後に新しく生成されたWebSite 1をzipはWebSite 1と改称する.vsi.WebSite 1をダブルクリックします.vsiは、そのインストール手順と結果がStarterKitsの例と完全に一致しています.これでVSI疑惑団は破局した.
このテンプレート出力機能をよく考えてみると、確かに役に立ちます.プログラマ間では、VSIファイルを利用して、本当に便利で、構成可能なコード交流を行うことができます.プロジェクトテンプレートを使用して、一連の共通のアプリケーションテンプレートを作成することもできます.近い将来、ほとんど.NETコミュニティまたはウェブサイトが提供する.NETコードの例はStarter Kitsのようなやり方を採用しており、コードプログラムのコミュニケーションがこのようなVSIファイル間の交換に傾いていると信じています.
ほほほ、発表してから、googleに行って関連資料を調べました.やっと気づいた.vsi拡張子ファイルのインストールは、実質的にC:Program FilesCommon FilesMicrosoft SharedMSEnvディレクトリの下にあるVSContInstallerを呼び出す.exeはインストールを行います.インストールを直接ダブルクリックできない場合はvsiのエラーの場合、このコマンドラインファイルを利用してインストールできます.しかし、vsiを生成するためのツールプログラムはまだ見つかりません.しかし、調べた資料によると、Microsoftを利用している.VisualStudio.VSContentInstaller.dll(VContentInstaller.exeと同じディレクトリ)で提供されているインタフェースは、vsiパッケージツールを自分で作成できるようですが、実際に検証されていないので、時間があれば試してみてください.