Visual studio 如何在TFS SQL项目中设置和获取生成版本

Visual studio 如何在TFS SQL项目中设置和获取生成版本,visual-studio,version-control,tfs,msbuild,sqlproj,Visual Studio,Version Control,Tfs,Msbuild,Sqlproj,我在VisualStudio2013和SSDT中使用TFS创建各种SQL数据库脚本。i、 e.我所有的SQL DB开发都是通过VS而不是SSMS进行的 我现在试图实现的目标是在构建/发布项目时,根据此处发布的功能,从外部文本文件生成/检索版本号: 因此,我在MyProject.sqlprojxml文件中添加了以下内容: <PropertyGroup> <WorkingFolder>C:\Source Control\MISTP\Main\DB\SSMS\MyP

我在VisualStudio2013和SSDT中使用TFS创建各种SQL数据库脚本。i、 e.我所有的SQL DB开发都是通过VS而不是SSMS进行的

我现在试图实现的目标是在构建/发布项目时,根据此处发布的功能,从外部文本文件生成/检索版本号:

因此,我在
MyProject.sqlproj
xml文件中添加了以下内容:

<PropertyGroup> 
    <WorkingFolder>C:\Source Control\MISTP\Main\DB\SSMS\MyProject</WorkingFolder> 
</PropertyGroup>

<Target Name="GetVersion"> 
    <Message Text="GetVersion: Reading version number from VersionInfo.txt" /> 
    <Attrib Files="$(WorkingFolder)\VersionInfo.txt" Normal="true" /> 
    <Version VersionFile="$(WorkingFolder)\Build\VersionInfo.txt"> 
    <Output TaskParameter="Major" PropertyName="Major" /> 
    <Output TaskParameter="Minor" PropertyName="Minor" /> 
    <Output TaskParameter="Build" PropertyName="Build" /> 
    <Output TaskParameter="Revision" PropertyName="Revision" /> 
    </Version> 
    <Message Text="GetVersion: $(Major).$(Minor).$(Build).$(Revision)" /> 
</Target>

<Target Name="SetVersion" DependsOnTargets="GetVersion"> 
    <Message Text="SetVersionInfo: Updating Versions in all files" /> 
    <CreateItem Include="$(WorkingFolder)\**\*.*"> 
    <Output TaskParameter="Include" ItemName="Files"/> 
    </CreateItem> 
    <Attrib Files="@(Files)" Normal="true" /> 
    <FileUpdate Files="@(Files)" Regex="FileVersionAttribute\(&quot;(\d+)\.(\d+)\.(\d+)\.(\d+)&quot;\)" ReplacementText="FileVersionAttribute(&quot;$(Major).$(Minor).$(Build).$(Revision)&quot;)" /> 
    <FileUpdate Files="@(Files)" Regex="FileVersion\(&quot;(\d+)\.(\d+)\.(\d+)\.(\d+)&quot;\)" ReplacementText=" FileVersion (&quot;$(Major).$(Minor).$(Build).$(Revision)&quot;)" /> 
    <FileUpdate Files="@(Files)" Regex="FileVersion\(&quot;(\d+)\.(\d+)\.(\d+)\.(\d+)&quot;\)" ReplacementText="FileVersion(&quot;$(Major).$(Minor).$(Build).$(Revision)&quot;)" /> 
</Target>

C:\Source Control\MISTP\Main\DB\SSMS\MyProject
我有一个
VersionInfo.txt
文件,位于:
C:\Source-Control\MISTP\Main\DB\SSMS\MyProject\Build

它只包含以下字符串:
1.2.3.4

然而,当我在VS中构建和/或发布项目时,这似乎没有任何实际作用。我缺少了什么

我是MSBuild的新手,但语法似乎正确——并且主要是从codeproject文章中提出来的——文件的路径也不错

感觉xml没有被执行,但我假设它在.sqlproj文件中的存在将导致它被执行


谢谢

在构建过程中不会触发目标。更新“SetVersion”目标,如下所示:

<Target Name="SetVersion" DependsOnTargets="GetVersion" AfterTargets="PostBuildEvent"> 

如果我正确理解您的问题,您需要更新Dacpac版本-有关所需内容的信息,请参阅。