tipo tag puede propiedad lugar interoperabilidad interfaz incrustar aplicable c# .net deployment .net-assembly managed-c++

c# - tag - el tipo de interoperabilidad no se puede incrustar. use la interfaz aplicable en su lugar



System.IO.FileNotFoundException: no se pudo cargar el archivo o el ensamblaje ''X'' o una de sus dependencias al implementar la aplicaciĆ³n (3)

Tengo un problema extraño con la implementación de una aplicación, que hace referencia a un ensamblaje, escrito en c ++ administrado.

He creado un conjunto X, lo he compilado y lo he referenciado en un archivo exe, llamado Starter.

Starter.exe se inicia normalmente en mashine local. Sin embargo, cuando copio TODOS los contenidos de la carpeta de depuración de inicio a un mashine virtual e intento iniciarlo allí, se bloquea con la siguiente excepción:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly ''X'' or one of its dependencies. The specified module could not be found.

Esto no tiene ningún sentido para mí, porque X está justo en la misma carpeta que Starter.exe.

¿Qué podría estar causando este problema?

ACTUALIZAR

He examinado las dependencias en Reflector en la máquina de destino, y fue capaz de encontrar archivos para todos esos.

También he cambiado las configuraciones a x86 / win32 para todos los proyectos.

ACTUALIZAR

Aquí están los registros de Fusion Log (ubicación: C: / FusionLog / Default / Starter.exe / X, Versión = 1.0.4538.22813, Culture = neutral, PublicKeyToken = null.HTM):

*** Assembly Binder Log Entry (6/4/2012 @ 1:56:13 PM) *** The operation was successful. Bind result: hr = 0x0. The operation completed successfully. Assembly manager loaded from: C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/clr.dll Running under executable C:/Documents and Settings/Administrator/Desktop/tmp/k;k/Starter.exe --- A detailed error log follows. === Pre-bind state information === LOG: User = MENKAUR-7683827/Administrator LOG: DisplayName = X, Version=1.0.4538.22813, Culture=neutral, PublicKeyToken=null (Fully-specified) LOG: Appbase = file:///C:/Documents and Settings/Administrator/Desktop/tmp/k;k/ LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = Starter.exe Calling assembly : Starter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. === LOG: This bind starts in default load context. LOG: Using application configuration file: C:/Documents and Settings/Administrator/Desktop/tmp/k;k/Starter.exe.Config LOG: Using host configuration file: LOG: Using machine configuration file from C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/config/machine.config. LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). LOG: Attempting download of new URL file:///C:/Documents and Settings/Administrator/Desktop/tmp/k;k/X.DLL. LOG: Assembly download was successful. Attempting setup of file: C:/Documents and Settings/Administrator/Desktop/tmp/k;k/X.dll LOG: Entering run-from-source setup phase. LOG: Assembly Name is: X, Version=1.0.4538.22813, Culture=neutral, PublicKeyToken=null LOG: Binding succeeds. Returns assembly from C:/Documents and Settings/Administrator/Desktop/tmp/k;k/X.dll. LOG: Assembly is loaded in default load context.

Los únicos errores están en el directorio C: / FusionLog / NativeImage / Starter.exe /:

*** Assembly Binder Log Entry (6/4/2012 @ 1:56:13 PM) *** The operation failed. Bind result: hr = 0x80070002. The system cannot find the file specified. Assembly manager loaded from: C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/clr.dll Running under executable C:/Documents and Settings/Administrator/Desktop/tmp/k;k/Starter.exe --- A detailed error log follows. === Pre-bind state information === LOG: User = MENKAUR-7683827/Administrator LOG: DisplayName = BookmarkWiz.Kernel, Version=1.0.4538.22813, Culture=neutral, PublicKeyToken=null (Fully-specified) LOG: Appbase = file:///C:/Documents and Settings/Administrator/Desktop/tmp/k;k/ LOG: Initial PrivatePath = NULL LOG: Dynamic Base = NULL LOG: Cache Base = NULL LOG: AppName = Starter.exe Calling assembly : Starter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. === LOG: Start binding of native image X, Version=1.0.4538.22813, Culture=neutral, PublicKeyToken=null. WRN: No matching native image found. LOG: IL assembly loaded from C:/Documents and Settings/Administrator/Desktop/tmp/k;k/X.dll.

No puedo firmar el ensamblaje, ya que hace referencia a otros ensamblajes que no están firmados


... No se pudo cargar el archivo o ensamblaje ''X'' o una de sus dependencias ...

Lo más probable es que no se cargue otra dependencia.

Usted podría tratar de verificar las dependencias con un caminante de dependencias.

Es decir: http://www.dependencywalker.com/

También verifique su configuración de construcción (x86 / 64)

Edición: También tuve este problema una vez cuando estaba copiando dlls en zip desde un recurso compartido de red "no confiable". El archivo fue bloqueado por Windows y se generó la excepción FileNotFoundException.

Vea aquí: DLL detectados que son de Internet y están "bloqueados" por CASPOL


Resolví este problema cambiando el nombre de la DLL. La DLL se cambió de nombre manualmente cuando se cargó en su ubicación compartida (se agregó un número de versión al nombre del archivo). Eliminar el número de versión del archivo descargado resolvió el problema.


Tuve el mismo problema. Para mí, ayudó a eliminar el directorio .vs en la carpeta del proyecto.