Visual studio 2012 SSDT-仅当模型已更改时运行后构建步骤?
我的SSDT项目文件中有一个后构建步骤。这一步可能需要一些时间,所以我只想在SSDT项目中发生变化时运行这一步 为了在C#项目中实现这一点,我使用以下方法:Visual studio 2012 SSDT-仅当模型已更改时运行后构建步骤?,visual-studio-2012,sql-server-data-tools,Visual Studio 2012,Sql Server Data Tools,我的SSDT项目文件中有一个后构建步骤。这一步可能需要一些时间,所以我只想在SSDT项目中发生变化时运行这一步 为了在C#项目中实现这一点,我使用以下方法: <Target Name="AfterBuild" Condition="'$(_AssemblyTimestampBeforeCompile)' != '$(_AssemblyTimestampAfterCompile)'"> 不幸的是,这不适用于SSDT项目。是否有一个条件=''会发生这种情况?是否有任
<Target
Name="AfterBuild"
Condition="'$(_AssemblyTimestampBeforeCompile)' != '$(_AssemblyTimestampAfterCompile)'">
不幸的是,这不适用于SSDT项目。是否有一个
条件=''
会发生这种情况?是否有任何文档可以让我查看,以了解在SSDT项目中有效的条件?将以下内容添加到SSDT项目中:
<Project>
<PropertyGroup>
...
<RunPostBuildEvent>OnOutputUpdated</RunPostBuildEvent>
</PropertyGroup>
...
<Target Name="GetTimeStampBeforeBuild" BeforeTargets="BeforeBuild">
<ItemGroup>
<ProjectOutputFiles Include="$(TargetPath)" />
</ItemGroup>
<PropertyGroup>
<_AssemblyTimestampBeforeCompile>%(ProjectOutputFiles.ModifiedTime)</_AssemblyTimestampBeforeCompile>
</PropertyGroup>
</Target>
<Target Name="GetTimeStampAfterBuild" AfterTargets="SqlPrepareForRun">
<PropertyGroup>
<_AssemblyTimestampAfterCompile>%(ProjectOutputFiles.ModifiedTime)</_AssemblyTimestampAfterCompile>
</PropertyGroup>
</Target>
</Project>
...
OnOutputUpdated
...
%(ProjectOutputFiles.ModifiedTime)
%(ProjectOutputFiles.ModifiedTime)
这将防止在增量生成期间执行PostBuildEvent目标。生成后事件仅在项目第一次生成(加载后)时运行,然后在重新生成时运行。此操作已成功-谢谢;但也不适用于我的特殊情况。我试图做的是在构建之后运行一个步骤来处理一些T4模板——问题是这些T4模板只依赖于环境,而这些T4模板是在IDE中生成的。希望有人发现这个答案很有用!