2016-11-06 20 views
0

내 프로젝트가 이미 사용 된 솔루션 이름 아래에 있다는 것을 알고 나면 전체 솔루션의 이름을 바꾸기로 결정했습니다. 내 홈페이지와 애플리케이션 자체에서 소스 코드를 공유하고 이미 존재하는 다른 프로젝트의 복사본처럼 사용자에게 보이고 싶지 않기 때문에 그렇게해야합니다. C# + SharpDevelop : 루트 네임 스페이스를 변경 한 후 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 /"/에 있습니다.

답변

0

좋아, 다시 작동하도록했습니다. 같은 것을 경험할 모든 사람들에게 해결책은 다음과 같습니다.

솔루션 마법사로 새로운 솔루션을 시작했습니다. 원본 파일을 포함하여 모든 프로젝트를 다시 추가하고 컴파일했습니다.

모두입니다. SharpDevelop의 특정 문제인 것 같습니다.

안부, 스티븐.