[英]How to embed content of the file in the C# code?
我有一個包含這樣的文本的文件(沒有別的)
2010-10-05
我想將此文件(內容)嵌入到C#代碼中,因此我可以將此文本分配給常量(字符串MyDate),然后使用此常量。
我試圖實現的是保持程序的相關信息 - 無論是在網站上還是在程序內。
解決方案必須是:
我想到的最簡單的,就是保持文件“版本”與版本(實際發布日期,因為它更有意義恕我直言),這樣的文件可以在網站上顯示沒有問題(PHP)。 我想我管理寫的.bat文件很小,可以在每次構建時自動生成這樣的文件。
但是如何在C#代碼中使用它(嵌入)?
我想要實現這個或替代解決方案,但不比這個更復雜。
我已經知道了幾個解決方法,比如:
但是我也不覺得“干凈”。 我需要更順暢的東西:-)
我的程序一方面應該通知用戶“嘿,有更新版本的程序”,另一方面當瀏覽網頁時,應該在頁面上顯示有關發布日期的信息。
我試圖完全避免這個問題,並依賴文件的時間戳 - 它可以工作,因為當你在午夜之前構建exe並在之后創建安裝包時,只有一個弱點。 但是,將文件上傳到ftp服務器這樣的計划 - 你必須確保ftp服務器支持時間戳修改,你不能使用SFTP協議。
所以,我最終創建了“版本”文件而沒有嵌入它(因為我不知道如何) - 我在網站上用PHP腳本和執行時用C#代碼讀取內容。
預先感謝您的幫助。
如果使用資源文件(.resx文件),則可以將其編譯到程序集中。
MSDN: 添加和編輯資源(Visual C#)
要解決檢查更新的問題,您可以:使用WebClient
從您的站點加載頁面,並檢查版本信息。
要解決顯示版本信息的問題,您只需在安裝程序中保留一個名為versioninfo.txt的文本文件,然后在運行時加載/顯示該文件,或者如@Daniel所述,您可以使用資源將文本文件編譯為二進制。
您的問題似乎有兩個部分:
1)自動為您的程序生成內部版本號/版本
2)有一個Web服務,它將檢查內部版本號是否是最新版本。
對於第1部分,有多種解決方案,例如通過資源自動包含文件和預構建事件,甚至使用MS自動遞增構建號。
第二部分涉及與您的網站共享該信息。 只要您“發布”最新版本的程序並且可能是手動事件,就必須發生這種情況。 您可以編寫一個“發布”程序來讀取程序的MS內部版本號或嵌入式資源,並將其寫入您將用作Web服務的后端存儲的內容。
然后,Web服務對來自已安裝程序的請求進行轉換,並檢查是否存在更高版本。
編輯
再思考一下。 您只需要每次構建程序時增加的MS內部版本號。 將其視為索引保存在您網站上的數據的關鍵。 程序將版本號發送到Web服務,如果有更新版本,則Web服務返回較新的版本號加上其發布日期。
但是,您可能仍希望在程序中嵌入發布日期,以便將其顯示在about框中,而無需轉到Web服務來查找該信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.