Après avoir reconnu que mon projet existe déjà sous la solutionname nom utilisé j'ai décidé de renommer la solution entière. Je dois le faire parce que je veux partager le code source sur ma page d'accueil aussi bien que l'application elle-même et ne veux pas qu'elle regarde aux utilisateurs comme une copie d'un autre projet qui existe déjà.C# + SharpDevelop: gestionnaire de ressource vissée après avoir modifié l'espace de noms racine?
je changé tous les espaces de noms dans chaque fichier, ainsi que le assemblyname, l'espace de noms racine et l'appel d'instance ResourceManager de « OldName » à « NewName » comme ceci:
resManager = new ResourceManager("NewName.Resources.Manifest", System.Reflection.Assembly.GetExecutingAssembly());
Après avoir fait cela, je recompilés travaillé sans erreurs. Malheureusement, je reçois une erreur d'exécution avec un System.Resources.MissingManifestResourceException
lors de l'appel de la première méthode resManager.GetString();
. Ainsi, l'application ne peut plus voir les ressources. Mais pourquoi?
La structure des dossiers et tous les autres fichiers source n'ont pas changé. J'ai restauré ma sauvegarde et compris, qu'il n'est pas possible de simplement changer l'espace de noms racine ainsi que le resourcemanager
. Il doit y avoir quelque chose que je ne sais pas.
Toute aide serait génial :-)
Voici ce que je fais:
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
}
Le nom du fichier resx est "Manifest.de.resx" et " Manifest.en.resx ". Ces fichiers sont dans "ProjectFolder/Resources /".