2012-06-04 43 views
1

我有一个组件,它的工作就好了我自己的电脑,但是当我尝试引用它在虚拟机上,我收到以下错误:如何完全信任未签署的程序集?

System.IO.FileNotFoundException: Could not load file or assembly 'X.dll' or one of its ependencies. The specified module could not be found. 
File name: 'X.dll' 
    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm,Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) 
    at System.Reflection.Assembly.LoadFrom(String assemblyFile) 
    at kernelLoader.Program.Main(String[] args) 

我绝对相信,该文件位于指定的位置,并且代码在我自己的机器上(它已经开发的地方)正常工作。它与所有引用的程序集一起为x86平台编译。

我想,这个错误可能是由程序集不完全信任造成的。

我不能强烈地唱歌集会,因为它引用了几个程序集,这些程序集没有被烧录,并且我没有代码或修改权限。

我怀疑是否有一种很好的方法可以让我在运行mashine时受信任的程序集。

如何将程序集标记为可信,以便可以加载和执行?

+1

检查是否有第三个程序集缺少'X.dll'依赖。你的应用程序 - > X.dll->缺失。 – cloggins

+0

我用反射器做了这个。所有组件似乎都存在。另外,在例外情况中,X.dll被标记为缺失(文件名:'X.dll') –

+0

再次复制文件,复制时可能已损坏。 –

回答

1

该异常通常是由缺少的dll引起的。有一件事可以使用ProcMon。当缺少DLL被加载并且错误通过时,文件名应该显示在ProcMon中。

相关问题