最近,在编辑.NET3.5版本代码是,突然爆出错误。 查处是跟参照有关。
在过去的.vbproj文件中,有如下参照
<Reference Include="System.Windows.Forms.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
代码中是因为Chart Controller而引用到了System.Windows.Forms.DataVisualization资源包。
在VS环境下,打开对应的项目,可以看到相应的参照属性如下
(1)C:windowsassemblyGAC_MSILSystem.Windows.Forms.DataVisualization3.5.0.0__31bf3856ad364e35System.Windows.Forms.DataVisualization.dll
(2)C:Program Files (x86)Microsoft Chart ControlsAssembliesSystem.Windows.Forms.DataVisualization.dll
可以看到后面的 (1)或者(2),两者均可以。 需要考虑,全局注册Global Assembly Catch.
pasting这里分析vbproj中的Version版本号,与PublicKeyToken刚好在(1)中可以反映。 而C:windowsassembly下的目录全部是用于参考的特殊文件或者文件夹,
通过普通的窗口只能看到一个Mark的文件夹,而不能看到其内部的文件。如果要看,必须通过Dos 窗口看。
注册表中查询: 31bf3856ad364e35,
HKEY_CURRENT_USERSoftwareMicrosoftInstallerAssembliesc:|Program Files (x86)|Microsoft Chart Controls|Assemblies|System.Web.DataVisualization.dll System.Web.DataVisualization,version="3.5.0.0",publicKeyToken="31bf3856ad364e35",processorArchitecture="MSIL",fileVersion="3.5.30729.116",culture="neutral"
value O`X&9fQNo8q+=[WOk(@QChart_Feature>nLA{5MHuu=5c.h^A.xE[
value O`X&9fQNo8q+=[WOk(@QChart_Feature>v'=bOR[V[A!n0Y5w^}Hc
最终在官方网站,下载了一个MSChart.exe安装包,解决了在属性栏中找不到下及GAC文件问题。
C:windowsassemblyGAC_MSILSystem.Windows.Forms.DataVisualization3.5.0.0__31bf3856ad364e35System.Windows.Forms.DataVisualization.dll
微软是如何管理,自己封存的各种资源DLL, 仍然需要考证,分析。 为什么突然出现找不到,DLL,
系统发生了什么,导致找不到?仍然是迷。