簡體   English   中英

如何在構建時將計算值放入RESX C#

[英]how to put computed value in RESX at build time C#

我遇到的情況是,我有一個字符串,其中應包含今天的日期。問題是我需要將包含今天的日期的字符串放入.resx文件中。 有什么辦法嗎? 例如,讓我們說說版權字符串,應該是copyright-2012-abc是今天的日期,是2012年&它應該是copyright-2013-abc是今天的日期,是2013年。

編輯:我將僅將資源文件用於此版權內容。 就像示例中一樣,其他所有事情都是靜態的,只是年份的價值會隨着時間的流逝而變化。

沒有內置方法可以將“當前環境”值添加到RESX(或任何其他與C#相關的文件)中。

但是您可以相對容易地創建預構建規則,該規則將調用您的自定義腳本/工具,以根據您的喜好修改RESX文件。

一種選擇是創建工具,該工具將生成一個文件,該文件隨后包含在RESX文件中。 這樣可以避免修改RESX文件本身(如果RESX在源代碼控制下可能會出現問題)。 根據您的需要,在RESX中包括date /t > ..\\..\\out.txt和out.txt即可。

將在構建時創建的文件包含到RESX中的步驟:

  • 將TextFile1.txt添加到您的項目
  • 將該文件放在{resourceFileName} .RESX上(在設計模式下)
  • 檢查{resourceFileName} .Designer.cs是否已使用新屬性更新以訪問新資源的內容
  • 在解決方案資源管理器中,選擇了項目的屬性,然后打開“構建事件”選項卡
  • 將“日期/ t> .... \\ TextFile1.txt”添加到預構建步驟(會將當前日期轉儲到“ TextFile1.txt”中
  • 生成並使用新的資源變量,即Console.WriteLine(Resource1.TextFile1)

RESX樣本內容:

  <data name="TextFile1" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>textfile1.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
  </data>

resx用於存儲靜態資源。 盡管可能會在運行時或在開發期間通過某種腳本來更改resx,但是這兩種方法都為小功能帶來了太多的復雜性。

如果您可以澄清此類版權字符串的用例,則讀者可能能夠提供更具體的建議。 說,您是否僅將字符串用於在“關於”框中顯示? 還是程序集屬性?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM