私のプロジェクトが既に使用されているソリューション名の下に存在することを認識した後、ソリューション全体の名前を変更することにしました。私は自分のホームページとアプリケーション自体でソースコードを共有したいので、すでに存在する他のプロジェクトのコピーのようにユーザに見せたくないので、これを行う必要があります。 C#+ SharpDevelop:root名前空間を変更した後にresourcemanagerを台無しにしましたか?
が、私はそうのようなすべてのファイル内のすべての名前空間だけでなく、「このNewName」へのAssemblyName、ルート名前空間と「OLDNAME」からのResourceManagerインスタンスの呼び出しに変更:それをやった後resManager = new ResourceManager("NewName.Resources.Manifest", System.Reflection.Assembly.GetExecutingAssembly());
を、私は再コンパイルされました何の誤りもなく働いた。残念ながら、最初にresManager.GetString();
メソッドを呼び出すと、System.Resources.MissingManifestResourceException
でランタイムエラーが発生します。したがって、アプリケーションはもうリソースを見ることができません。しかし、なぜ?
フォルダ構造と他のすべてのソースファイルは変更されませんでした。私はバックアップを復元し、単にルートネームスペースとresourcemanager
を変更することはできないことを理解しました。私が知らないことがあるはずです。
すべてのヘルプは素晴らしい:-)ここ
だろうと、私がやっているものです:
namespace NewName
{
//...
ResourceManager resManager;
CultureInfo cultureInfo;
Settings settingsFromFile = new Settings();
settingsFromFile.readSettings();
if (settingsFromFile.Language == "german")
cultureInfo = new CultureInfo("de");
else
cultureInfo = new CultureInfo("en");
resManager = new ResourceManager("NewName.Resources.Manifest", System.Reflection.Assembly.GetExecutingAssembly());
//...
contextMenuStripDoFencyStuff.MenuItems.Add(resManager.GetString("contextMenuStripDoFencyStuffText",cultureInfo)); <-- this is where the exception occurs
}
RESXファイルの名前はと"Manifest.de.resx" です」 Manifest.en.resx "。これらのファイルは"ProjectFolder/Resources /"にあります。