我有一个生成some.dll
的C#项目,它引用了一堆DLL,其中一个是System.ComponentModel.Composition.dll
,位于C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
下。
我构建了some.dll
并部署在Windows XP系统上。使用此some.dll
的应用程序正常运行。但是当我尝试在Windows XP系统上查找System.ComponentModel.Composition.dll
下的C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
时,我找不到它。
我只是想了解应用程序是如何正常运行的。
我想了解它的原因是,我在另一个系统中构建了some.dll
并部署在另一个Windows XP系统上。当我尝试启动应用程序时,应用程序崩溃并出现错误:
Exception ::Could not load file or assembly 'System.ComponentModel.Composition.resources, Version=4.0.0.0, Culture=en-NZ, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
答案 0 :(得分:2)
参考程序集在编译时使用。通常,就像这里一样,引用作为.NET Framework的 part 安装的程序集。将这些程序集置于C:\Windows\Assembly
(对于GAC)或C:\Windows\Microsoft.Net
下的某处。
在这种情况下,建议缺少组件的计算机没有安装正确版本的.NET。