1. 程式人生 > >Visual Studio Reference Study.

Visual Studio Reference Study.

processor val name classes ren 打開 silver .net ogr

最近,在編輯.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:\windows\assembly\GAC_MSIL\System.Windows.Forms.DataVisualization\3.5.0.0__31bf3856ad364e35\System.Windows.Forms.DataVisualization.dll

(2)C:\Program Files (x86)\Microsoft Chart Controls\Assemblies\System.Windows.Forms.DataVisualization.dll

可以看到後面的 (1)或者(2),兩者均可以。 需要考慮,全局註冊Global Assembly Catch.

pasting

這裏分析vbproj中的Version版本號,與PublicKeyToken剛好在(1)中可以反映。 而C:\windows\assembly下的目錄全部是用於參考的特殊文件或者文件夾,

通過普通的窗口只能看到一個Mark的文件夾,而不能看到其內部的文件。如果要看,必須通過Dos 窗口看。

註冊表中查詢: 31bf3856ad364e35, 可以看到一個Key名為:

HKEY_CLASSES_ROOT\Installer\Assemblies\c:|Program Files (x86)|Microsoft Silverlight|5.1.50906.0|bg|Microsoft.VisualBasic.resources.dll

HKEY_CLASSES_ROOT\Installer\Assemblies\c:|Program Files (x86)|Microsoft Silverlight|5.1.50906.0|cs|Microsoft.VisualBasic.resources.dll

內部bg, cs等應該是各國語言對應。的對象。可以看出,這裏是微軟自己封裝好的Assemblies。

HKEY_CLASSES_ROOT\TypeLib\{11A8B8EE-BF30-409A-8EF7-3A143EF70332}\1.0\PrimaryInteropAssemblyName Value=

Microsoft.Interop.Security.AzRoles Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35


HKEY_CLASSES_ROOT\Wow6432Node\TypeLib\{11A8B8EE-BF30-409A-8EF7-3A143EF70332}\1.0

Microsoft.Interop.Security.AzRoles Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

HKEY_CURRENT_USER\Software\Microsoft\Installer\Assemblies\c:|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[

HKEY_CURRENT_USER\Software\Microsoft\Installer\Assemblies\Global System.Windows.Forms.DataVisualization,version="3.5.0.0",publicKeyToken="31bf3856ad364e35",processorArchitecture="MSIL",fileVersion="3.5.30729.116",culture="neutral"

value O`X&9fQNo8q+=[WOk(@QChart_Feature>v‘=bOR[V[A!n0Y5w^}Hc

最終在官方網站,下載了一個MSChart.exe安裝包,解決了在屬性欄中找不到下及GAC文件問題。

C:\windows\assembly\GAC_MSIL\System.Windows.Forms.DataVisualization\3.5.0.0__31bf3856ad364e35\System.Windows.Forms.DataVisualization.dll

微軟是如何管理,自己封存的各種資源DLL, 仍然需要考證,分析。

Visual Studio Reference Study.