パーシモンシステム
LLL/Ajax

FAQ

   LLL/.net (トリプルエル/ドットネット) に関するFAQです。

技術的な質問

プログラムについて
戻る


Q-0129. 自作したコンポーネントを自動的に参照するテンプレートの作成方法を教えてください。

プログラムの新規作成を、テンプレートから行うと、開発ディレクトリにそのプログラム用の新しいプロジェクトディレクトリが作成されます。そこに作成されたディレクトリには、
「プログラム名.vbproj(またはProject.csproj)」、「プログラム名.sln」、「Form1.vb(またはcs)」、「Form1.resx」、などがテンプレートに基づき自動的に初期作成されています。

コンポーネントの参照は、プログラム名.vbproj(または.csproj)が持つ情報ですので、テンプレートが新たにそのプログラム用に作成する「プログラム名.vbproj(または.csproj)」の元情報に、予めコンポーネントの参照設定を組み込んでおくことで、目的を達成することができます。

その元情報とは、\開発ディレクトリ\SystemPats\VS2005\vb(またはcs)\Projectフォルダー内にある Project.vbproj(またはProject.csproj) というファイルです。このプロジェクトファイルには、LLL/.netアプリケーションが標準で参照する各コンポーネントの参照があらかじめ組み込まれています。

メモ帳で開くと、

<Reference Include="LLLNET.LComWin">
    <Name > LLLNET.LComWin </Name>
    <HintPath>..\LLLNET.LComWin.dll</HintPath>
</Reference>

となっている部分が、フォーム制御コンポーネント(LLLNET.LComWin.dll)の参照設定であることが分かります。
基本的には、これと同様に自作コンポーネントの追加を記述しておいていただければ良いことになります。

ただし、このプロジェクトファイルの格納フォルダーは、前述のとおり、
\開発ディレクトリ\SystemPats\VS2005\vb(またはcs)\Project であり、対象となるプロジェクトファイルは Project.vbproj (またはProject.csproj)です。
\開発ディレクトリ\SystemPats\VS2005\vb(またはcs)\Template ではなく、対象となるプロジェクトファイルが、その中の Template.vbproj(またはTemplate.csproj)ではないことにご注意ください。

それと、参照の追加であれば、VisualStudioでこのプロジェクトファイルを開き、対話型で参照の追加を行えば良いと考えられるかと思いますが、それを行うと、対応する Project.sln が自動的に更新されてしまいます。

\開発ディレクトリ\SystemPats\VS2005\vb(またはcs)\Project に存在する Project.sln は、LLL/.netプログラム設計が、テンプレートに基づきプロジェクトを新規作成する際に必要なLLL/.net用の変数を格納していますが、前述の操作によりVisualStudioでの自動更新がかかると、この情報を消されてしまいます。

これを回避するためには、この Project.vbproj (またはProject.csproj)の編集には、VisualStuioを使用せず他のメモ帳などのエディターを使用するか、 Project.sln のバックアップを作成しておき、VisualStuioでの編集後に、 Project.sln をバックアップに戻すという動作が必要になります。

これを行わず、そのままLLL/.netプログラム設計でプログラムの新規作成を行うと、プログラム選択リストには名前は表示されるものの、LLL/.netプログラム設計では実際にはオープンできないプロジェクトが作成されてしまいます。

また、前述の仕組みによりプロジェクトファイルへの設定は、開発ディレクトリ単位です。同一開発ディレクトリ内で、自動で参照する設定をテンプレート毎に変えることはできません。もちろん新規プログラムを作成した後、そのプロジェクトで参照設定を変更することは、プログラム単位で自由に行えます。




戻る





著作権について パーシモンシステムトップへ