C#ASP.NET Visual studio将数据添加到部署文件中

时间:2015-01-22 16:30:46

标签: c# asp.net visual-studio-2013 build msbuild

我正在尝试将其他数据添加到我正在部署到iis的每个文件中。

特别是我需要在构建过程中为每个部署文件添加版本号,或者为部署/打包的文件添加版本号。

到目前为止,我能想出的唯一解决方案是有一个pre或post build事件,可以有效地为每个文件添加注释,主要是包含版本号的html,css和javascript文件。

这样做会相当简单,但看起来相当hacky,并且想知道是否有人知道更好的方法。

信息不需要是评论,可以是元数据或任何其他方式,只要文件中有版本号的记录就足够了。

版本号由teamcity生成,并放在文件系统上的文件中,该文件系统用于添加到生成的程序集。

感谢。

1 个答案:

答案 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\(&quot;(\d+)\.(\d+)\.(\d+)\.(\d+)"
    ReplacementText="AssemblyFileVersion(&quot;$1.$2.$3.$(MyRevision)" />
  </Target>