3

Visual Studio 内で SQL ファイルを作成できるアプリケーションを作成しています。ユーザーは、SQL スクリプトを生成し、Visual Studio プロジェクト内の特定のディレクトリに配置するパッケージ マネージャー コンソールを介してコマンドを入力します。

私が抱えている問題は、ファイルが生成されると、ファイル システムには存在するが、Visual Studio には存在しないことです。もちろん、ソリューション エクスプローラー内にファイルを積極的に含める必要があるため、これは当然のことですが、これは私が望んでいることではありません。ファイルが生成された直後にソリューションエクスプローラーに「魔法のように」表示されるようにします。

同様の問題に対するさまざまな解決策を見てきましたが、主にこのような.csprojファイルの修正を特徴としています

<Compile Include="Sql\**\*.sql" />

しかし、これは私が探しているものではありません。私が求めているのは、たとえば、Entity Framework や MvcScaffolding がどのように機能するかに似ています。PMC でコマンドを実行すると、ファイル/フォルダーが魔法のようにプロジェクトにドロップされます。これが T4 テンプレートから実行されることは承知していますが、このような単純な問題の解決策は複雑すぎるようです。

私は、ファイルの作成にブードゥー教が行われていないことを修飾する必要があります。単純な古い File.Create() のものだけです。

私はどんな提案にもオープンです。

ありがとう。

4

2 に答える 2

6

私のために働いた解決策については、この答えをチェックしてください。コードがフラットファイルを出力するのと同じユースケースがあり、この出力をプロジェクトに含める必要があります。

.csprojファイルの最後に次を追加します。

<Target Name="BeforeBuild">
    <ItemGroup>
        <Content Include="Sql\**\*.sql" />
    </ItemGroup>
</Target>
于 2013-01-23T20:48:24.190 に答える
0

私見、T4は行く方法です。あなたはあなたがやろうとしていることのために古い技術に煩わされたくありません。

そうは言っても、なぜファイルをソリューションエクスプローラーに追加する必要があるのでしょうか。ソース管理の目的ですか?(通常、自動生成されたファイルをソース管理するのではなく、元のモデルをソース管理する必要があります)。いつでも[すべて表示]ボタンをクリックすると、ファイルは実際にはソリューションの一部ではなく、ソリューションエクスプローラーに表示されることに注意してください。

于 2012-09-09T19:12:13.703 に答える