2012-06-04 3 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.

Я думаю, что ошибка может быть вызвана тем, что сборка не полностью доверена.

Я не могу сильно спеть сборку, потому что она ссылается на несколько сборок, которые не записаны, и на которые у меня нет кода или прав на изменение.

Я подозреваю, что есть хороший способ сделать сборку доверенной в машине, где я ее запускаю.

Как пометить сборку как доверенную, чтобы ее можно было загрузить и выполнить?

+1

Проверьте, отсутствует ли какая-либо третья сборка, от которой зависит «X.dll». Отсутствует ваше приложение-> X.dll->. – cloggins

+0

Я сделал это с отражателем. Кажется, что все сборки присутствуют. Кроме того, в исключении X.dll помечен как отсутствующий (имя файла: «X.dll») –

+0

Скопируйте файл еще раз, возможно, он был поврежден при копировании. –

ответ

1

Это исключение обычно вызвано отсутствующей dll. Одна вещь, которую можно использовать, - ProcMon. Когда пропавшая dll загружена и пропущена ошибка, имя файла должно появиться в ProcMon.