AssemblyInfo和访问常规函数

时间:2011-11-03 01:44:10

标签: .net assemblyinfo

[assembly: AssemblyCopyright("Copyright ©  2009")]

是否有可能以某种方式访问​​AssemblyInfo类中的DateTime.Now.Year等函数?以便像

一样
[assembly: AssemblyCopyright("Copyright ©  " + DateTime.Now.Year)]

执行上述操作将给出,当前上下文中不存在DateTime

1 个答案:

答案 0 :(得分:3)

开箱即用,没有,但有两个选项可以对您的程序集文件访问.NET功能。

最简单的方法是使用MSBuildExtensionPack中的AssemblyInfo任务。

安装完成后,您可以使用该任务中的所有方法http://www.msbuildextensionpack.com/help/4.0.4.0/index.html,例如:

    <Target Name="Version">
    <ItemGroup>
        <AssemblyInfoFiles Include="$(SourcePath)\Code\Properties\AssemblyInfo.cs"/>
    </ItemGroup>
    <MSBuild.ExtensionPack.Framework.DateAndTime TaskAction="Get" Format="yyyy">
        <Output TaskParameter="Result" PropertyName="MyStartTime"/>
    </MSBuild.ExtensionPack.Framework.DateAndTime>
    <MSBuild.ExtensionPack.Framework.AssemblyInfo ComVisible="false" AssemblyInfoFiles="@(AssemblyInfoFiles)" AssemblyBuildNumberType="YearWeekDay" FirstDayOfWeek="Sunday" AssemblyBuildNumber="4" AssemblyCopyright=" Foo Copyright $(MyStartTime)"/>
</Target>

另一个选择是自己创建一个自定义的msbuild任务,并以这种方式公开其他功能。