Visual studio 如何在TFS SQL项目中设置和获取生成版本
我在VisualStudio2013和SSDT中使用TFS创建各种SQL数据库脚本。i、 e.我所有的SQL DB开发都是通过VS而不是SSMS进行的 我现在试图实现的目标是在构建/发布项目时,根据此处发布的功能,从外部文本文件生成/检索版本号: 因此,我在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
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\("(\d+)\.(\d+)\.(\d+)\.(\d+)"\)" ReplacementText="FileVersionAttribute("$(Major).$(Minor).$(Build).$(Revision)")" />
<FileUpdate Files="@(Files)" Regex="FileVersion\("(\d+)\.(\d+)\.(\d+)\.(\d+)"\)" ReplacementText=" FileVersion ("$(Major).$(Minor).$(Build).$(Revision)")" />
<FileUpdate Files="@(Files)" Regex="FileVersion\("(\d+)\.(\d+)\.(\d+)\.(\d+)"\)" ReplacementText="FileVersion("$(Major).$(Minor).$(Build).$(Revision)")" />
</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版本-有关所需内容的信息,请参阅。