1

データベースからいくつかのデフォルト クラスを作成するコンソール アプリケーションがあります。ファイルがビルドされたら、フォルダーを更新して、クラス ライブラリに新しいファイルを表示できるようにしたいと考えています。

ただし、何をしても、既存のファイルを手動で追加しない限り、ファイルは表示されません。VS2010 がファイル フォルダーを見て、そのフォルダーにあるものをプロジェクトに追加する方法はありますか? 例えば:

フォルダー > File1.cs、File2.cs、File3.cs、File4.cs

VS2010で見る

フォルダ > File1.cs

VS2010 にこれらの新しいクラスを表示させるにはどうすればよいですか?

4

6 に答える 6

2

問題は、.csprojファイルに含まれて参照されているファイルのみが表示されることです。これは、プロジェクトで考慮されるかどうかを最終的に制御できるため、概して良いことです。ただし、プロジェクトディレクトリに挿入された作成済みファイルが参照されていないため、これにより問題が発生します。あなたが言ったように、あなたは手動でファイルを含めることができます、しかし私はあなたがこのプロセスが自動であることを望んでいることを理解しています。

私の意見では、これを解決する最善の方法は、プロジェクトにファイルを作成させる代わりに、設計時のT4テンプレートを使用することです。デザイン時のT4テンプレートは、Razor以前のASP.NETビューに似たファイルであり、プロジェクト内でコードを生成できます。データベースにアクセスし、クラスをフォーマットしてから、.csファイルをビルドせずにプロジェクトに直接出力できます。これは、完全なビルドを行わなくても、出力に基づいて発生する可能性のあるコンパイル時エラーのキャッチに取り組むことができるため、非常に便利です。

T4の使用の詳細については、こちらをご覧ください。

そして、良いウォークスルーはここにあります。

于 2013-01-31T08:18:14.883 に答える
1
  1. ファイルを見つけることができるプロジェクトを選択します
  2. ソリューション エクスプローラーの上部で、[すべてのファイルを表示] を選択できます。
  3. ファイルを選択して含める

それらを自動的に追加するには、プロジェクトの .csproj/vbproj ファイルを変更することで、別のアプリまたはスクリプトから行うことができます

    <Compile Include="My Project\MyClass.vb" />

これは正しいアイテムグループで行う必要があります。

于 2013-01-31T08:15:11.410 に答える
1

これを個人的に試したことはありませんが、これを使用して実行できるはずです..

最初にアプリのソリューションを使用してプロジェクトへの参照を取得し、次に Visual Studio オートメーション フレームワーク (DTE) を使用します。

ProjectItems p = Project.ProjectItems;
p.AddFromFile("File1.cs");

出典: http://msdn.microsoft.com/en-us/library/envdte.projectitems.addfromfile.aspx 私はそれをさらに読みます。

于 2013-01-31T08:29:47.297 に答える
0

さて、データベースからいくつかのデフォルト クラスを作成するコンソール アプリケーションがあります。

このアプリケーションで、すべてのクラスを 1 つのファイルに書き込むことはできませんProxy.csEntities.cs。その後、ファイルを再生成してプロジェクトを再構築するたびに、新しいクラスにアクセスできます。

于 2013-01-31T08:25:14.680 に答える
0

これは直接的には不可能だと思います。cs ファイルを作成するためにテンプレート ファイル (t4)を作成すると、変換ファイルの実行時にプロジェクトに追加されます。

ビルド後/ビルド前に変換ファイルを実行するには、ビルド前/ビルド後のイベントを記述できます。

于 2013-01-31T08:15:31.800 に答える