2

我的团队已经多年(在我加入之前)不采用 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-&gt;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-&gt;Count())" />
</Target>

它显示构建组中包含的项目数从 2978 到 2977。但是在同一文件上构建仍然失败。 sql错误

4

1 回答 1

1

您可以向您的项目添加配置(默认情况下您有调试/发布 - 添加“架构”)。

然后手动编辑项目文件,将以下属性添加到您只希望在进行架构比较时包含的每个项目:

条件="'$(配置)' == '架构' "

于 2014-07-03T14:00:14.230 回答