为什么我需要更改' internalKeyToken"“;PublicKeyToken"在我的res

本文关键字:quot PublicKeyToken res 我的 internalKeyToken 为什么 | 更新日期: 2023-09-27 18:16:54

我已经将c#解决方案文件从VS 2005移动到VS 2010,并在一台新计算机上。我遇到的一个问题是,原始版本的资源文件混合了PublicKeyTokeninternalKeyToken,如下所示:

<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>

这个文件是由Visual Studio 2005通过使用设计器生成的,尽管我手工编辑它以将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. 为什么Visual Studio 2005在internalKeyToken和PublicKeyToken之间任意切换?所有文件都是相同的格式。
  2. 为什么以前的工作,但现在给出了一个"无法加载文件"的错误?发生了什么变化?

为什么我需要更改' internalKeyToken"“;PublicKeyToken"在我的res

我的水晶球说你有一个失控的搜索+替换。您将"public"替换为"internal",并且意外地修改了.resx文件。只要修复它或从源代码管理恢复。

即使是高层也会犯这种错误。