我的团队已经多年(在我加入之前)不采用 sql server 数据库项目。主要是因为有些项目具有循环引用,因此无法构建。我意识到推荐的方法是排除或修复循环引用。
但是,为了证明我们可以使用它们而不必解决所有技术债务,我想挂钩我的 sql server 项目的构建过程以从Build
项目组中删除项目。我对 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。但是在同一文件上构建仍然失败。