2011-11-03 56 views
1
[assembly: AssemblyCopyright("Copyright © 2009")] 

是否有可能以某種方式訪問​​AssemblyInfo類中的DateTime.Now.Year等函數?這樣才能把像AssemblyInfo和訪問常規函數

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

做上述會給,日期並不在當前的背景下

+2

這是不可能的。屬性值必須是常量。 – Amy

回答

3

開箱即用,沒有的存在,但有2個選項,以防止訪問.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任務和揭露附加功能那樣。