我正在尝试将其他数据添加到我正在部署到iis的每个文件中。
特别是我需要在构建过程中为每个部署文件添加版本号,或者为部署/打包的文件添加版本号。
到目前为止,我能想出的唯一解决方案是有一个pre或post build事件,可以有效地为每个文件添加注释,主要是包含版本号的html,css和javascript文件。
这样做会相当简单,但看起来相当hacky,并且想知道是否有人知道更好的方法。
信息不需要是评论,可以是元数据或任何其他方式,只要文件中有版本号的记录就足够了。
版本号由teamcity生成,并放在文件系统上的文件中,该文件系统用于添加到生成的程序集。
感谢。
答案 0 :(得分:1)
对于非编译程序集...黑客攻击一些注释掉的版本信息与其他任何想法一样好。
对于已编译的程序集......您可以更新AssemblyFileVersion属性。
MyRevision将填充一些与源控件相关的任务。 我注释掉了这个svn版本,你的源代码控制(以及一些Task)应该可以做到这一点。因此,出于演示目的,我对MyRevision值进行了硬编码。
http://msbuildtasks.tigris.org/和/或https://github.com/loresoft/msbuildtasks具有(FileUpdate和SvnVersion)任务。
<Target Name="VersionTagItTarget">
<ItemGroup>
<AssemblyInfoFiles Include="$(ProjectDir)\**\*AssemblyInfo.cs" />
</ItemGroup>
<PropertyGroup>
<MyRevision>999</MyRevision>
</PropertyGroup>
<!--
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(SVNToolPath)">
<Output TaskParameter="Revision" PropertyName="MyRevision" />
</SvnVersion>
-->
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="AssemblyFileVersion\("(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="AssemblyFileVersion("$1.$2.$3.$(MyRevision)" />
</Target>