私のチームは、(私が参加する前に) 何年もの間、SQL Server データベース プロジェクトを採用していませんでした。主な理由は、ビルドできない循環参照を持つアイテムがあるためです。推奨されるアプローチは、循環参照を除外または修正することだと認識しています。
Build
ただし、技術的負債をすべて修正することなくそれらを使用できることを証明するために、SQL サーバー プロジェクトのビルド プロセスをフックして、アイテム グループからアイテムを削除したいと考えています。私はmsbuildに非常に精通していますが、これまでのところ、ビルドに含まれているファイルを変更して失敗しているようには見えません。
スキーマの比較を試みるまで、正常に動作するNone
代わりにファイルを設定します。Build
それらをビルドに戻すか、で終わる新しいファイル名でそれらを再度追加する場所_1.sql
<Target Name="CustomSqlHook" BeforeTargets="CheckRequiredProperties;BeforeBuild;All;_SetupSqlBuildInputs;SqlBuild;SqlStaticCodeAnalysis;ResolveArtifactReferences;Build">
<Message Text="Build Before: @(Build)" Importance="high" />
<Message Importance="High" Text="custom sql hooked" />
<Message Importance="High" Text="build items are @(Build->Count())" />
<ItemGroup>
<Build Remove="project\Views\uvw_survey_history.sql" />
</ItemGroup>
<Message Text="-------------------------" />
<Message Text="Build After: @(Build)" Importance="high" />
<Message Importance="High" Text="build items are @(Build->Count())" />
</Target>
これは、ビルド グループに含まれるアイテムの数が 2978 から 2977 になることを示しています。ただし、ビルドは同じファイルで失敗します。