2011-12-05 1 views
0

저는 C# 솔루션 파일을 VS 2005에서 VS 2010으로 옮겼습니다. 하지만,내 resx 파일에서 "internalKeyToken"을 "PublicKeyToken"으로 변경해야하는 이유는 무엇입니까?

<data name="NAME" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>PATH;System.Drawing.Bitmap, System.Drawing, 
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> 
</data> 

<data name="NAME" type="System.Resources.ResXFileRef, System.Windows.Forms"> 
    <value>PATH;System.Drawing.Bitmap, System.Drawing, 
    Version=2.0.0.0, Culture=neutral, internalKeyToken=b03f5f7f11d50a3a</value> 
</data> 

이 파일 디자이너의 사용을 통해 비주얼 스튜디오 2005에 의해 생성 된 : 내가 발견 한 문제는 리소스 파일의 원래 버전이 PublicKeyTokeninternalKeyToken과 같이 혼합이다 internalKeyToken의 인스턴스를 PublicKeyToken으로 직접 변경하고 있습니다. 그래서 나에게 컴파일러 오류가 있습니다 일을하지 : 그래서

Error 19 Could not load file or assembly 'System.Drawing, 
Version=2.0.0.0, Culture=neutral' or one of its dependencies. 
The system cannot find the file specified. Line 225, position 5. 

를 궁금 :

  1. 이유는 비주얼 스튜디오 2005는 다소 임의적 internalKeyToken 및 PublicKeyToken 사이를 전환 했습니까? 파일은 모두 같은 형식입니다.
  2. 왜 이전에 작동했는데 이제는 '파일을로드 할 수 없습니다'오류가 발생 했습니까? 무엇이 바뀌 었습니까?

답변

3

내 수정 구슬에는 제어 기능이없는 검색 + 바꾸기가 있다고 나와 있습니다. "public"을 "internal"로 바꾸고 실수로 .resx 파일을 수정했습니다. 그냥 수정하거나 소스 컨트롤에서 복원하십시오.

상단 개도 make this mistake입니다.