【茶包射手日記】Resource1.cs之謎

初次體驗在Windows Form裡加入多語系支援,照著MSDN上的詳細說明,將Form.Localizable設為true,接著切換Form的Language為不同語系,其餘操作與標準做法完全相同: 點選按鈕、標籤->在屬性視窗輸入文字,便能為同一個Form設定不同語系的文字內容,十分方便。

接下來要為程式碼中的訊息也加入多語版本,文件上說要新增一個resx檔,項目樣版眾多,我就用VS2010最新的關鍵字查詢功能輸入"res”,很快找到了Resource File,加入專案。

高高興興要編譯,系統卻傳出錯誤:
The type or namespace name 'ResourcesAttribute' could not be found (are you missing a using directive or an assembly reference?)    C:\Projects\WebConfigEncryptor\Resource1.cs

仔細一看,Resource1.resx下多附了一個Resource1.cs,而其中有個[Resources]的Attribute被判定為未經宣告。

//------------------------------------------------------------------------------
// <auto-generated>
// Resource1.cs
//
// Do not edit directly. This file has been generated by ResXFileScriptGenerator v0.6.0.0.
// </auto-generated>
//------------------------------------------------------------------------------
 
using System;
using System.CodeDom.Compiler;
using System.Runtime.CompilerServices;
 
namespace WebConfigEncryptor.Resources {
 
    /// <summary>Resource1 resources class</summary>
    [GeneratedCodeAttribute("ResXInternalScriptGenerator", "0.6.0.0")]
    [Resources]
    internal static class Resource1 {
    }
}

咦? 明明是系統自動產生提供強型別存取資源設定的程式,怎麼會包含無法被編譯的Attribute? 這種瑕疵通過VS2010軟體上市前測試的機率微乎其微,整件事很不合邏輯!!

用程式出現的關鍵字ResXFileScriptGenerator, ResXInternalScriptGenerator在網路上查詢,能查到的資料極少甚至完全沒有! 因此我推論這應不是VS2010的標準機制。如不是VS2010內建功能,那應是外掛或額外加裝的東西導致問題。

忽然想起,昨天裝了Script#來玩(就像GWT可以寫Java後轉Javascript,Script#讓開發者用C#寫前端邏輯,再自動轉成Javascript),才裝完隔天就被害到,該不會這麼帶賽吧? 重做一次加入resx的步驟,定神一看(參見第一張圖),輸入res後,中央清單中有兩個Resource File,而我選了第一個。這回改選最下方的Resource File,發現自動產生的是Resource1.designer.cs,不再是Resource1.cs,所以,我選錯檔案了? 將分類切到Script#,果不其然...

由這次的經驗,我覺得VS2010的項目樣版的查詢功能應再增加分類顯示(或者應該在發現名稱相同項目時加註警語)。在介面改良前,就靠大家眼睛睜大一點囉!

歡迎推文分享:
Published 29 August 2010 10:50 AM 由 Jeffrey
Filed under:
Views: 7,943



意見

# CP said on 28 August, 2010 10:16 PM

阿...

黑大的標題...

打錯了= ="

# Jeffrey said on 29 August, 2010 02:05 AM

to CP, 糗~~ 感謝指正! (我好像可以報名角逐部落格錯字冠軍了)

# CP said on 29 August, 2010 04:59 AM

我只是要切換頁面的時候...

看到奇怪的字= =

我還以為我看錯了XD

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<August 2010>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication