c# - proyecto - No se pudo cargar el archivo o el ensamblaje ''Microsoft.mshtml... Error en la validaciĆ³n de nombre seguro
no se puede cargar el archivo o ensamblado microsoft ai web (4)
Hice un programa WPF / C # y estoy usando el control de Internet para la edición HTML WYSIWYG.
Es un programa ejecutable regular.
funciona en la mayoría de las computadoras, sin embargo, algunas computadoras me están dando el siguiente error.
No se pudo cargar el archivo o el ensamblaje ''Microsoft.mshtml, Versión = 7.0.3300.0, Cultura = neutral, PublicKeyToken = b03f5f7f11d50a3a'' o una de sus dependencias. La validación fuerte del nombre falló.
El archivo ''Microsoft.mshtml.dll'' se distribuye con el programa. Es con todas las demás dlls requeridas en la misma carpeta que el archivo exe.
Aquí está la salida de Fuslogvw
*** Assembly Binder Log Entry (1/14/2010 @ 6:36:51 PM) ***
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorwks.dll
Running under executable C:/Documents and Settings/office/Desktop/Database/DATABASE.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = CAMPUSREMOTE/office
LOG: DisplayName = Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
(Fully-specified)
LOG: Appbase = file:///C:/Documents and Settings/office/Desktop/Database/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = DATABASE.exe
Calling assembly : ChabadOnCampusMainFrontEnd, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: Start binding of native image Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
WRN: No matching native image found.
Gracias
El primer paso para rastrear este problema es determinar si es realmente Mcirosoft.mshtml.dll o una de sus dependencias. La mejor manera de hacer esto es usar fuslogvw para rastrear la falla de carga del ensamblaje. Proporcionará información detallada sobre qué ensamblado está fallando.
Una vez que haya determinado qué ensamblaje está fallando, por favor vuelva a publicar los resultados.
EDITAR
Ese mensaje de advertencia sugiere que la operación finalmente tuvo éxito. No parece tener el error en ello.
También tuve este mismo problema, pero mi problema era usar TFS Build 2008. La ruta de acceso era relativa y tenía que cambiarse a la ruta exacta. De lo contrario, durante la compilación, siguió recogiendo Office mshtml.dll.
<HintPath>../../../../../../../../Program Files/Microsoft.NET/Primary Interop Assemblies/Microsoft.mshtml.dll</HintPath>
<HintPath>C:/Program Files/Microsoft.NET/Primary Interop Assemblies/Microsoft.mshtml.dll</HintPath>
Verifique que el archivo ''Microsoft.mshtml.dll'', distribuido con el programa, sea el archivo PIA y no un archivo de Office. Algunos sitios afirman que los archivos de Office están "firmados con retraso" y que el archivo PIA (instalado con la instalación de VS) es una copia firmada. En mi computadora tengo 3 versiones diferentes del archivo ''Microsoft.mshtml.dll'' (el mismo tamaño de archivo, pero contenido diferente):
"c: / Archivos de programa / Microsoft Visual Studio 9.0 / Visual Studio Tools para Office / PIA / Office11 / Microsoft.mshtml.dll"
"c: / Archivos de programa / Microsoft Visual Studio 9.0 / Visual Studio Tools para Office / PIA / Office12 / Microsoft.mshtml.dll"
"c: / Archivos de programa / Microsoft.NET / Primary Interop Assemblies / Microsoft.mshtml.dll"
Elimine la referencia "Microsoft.mshtml.dll" del proyecto. Use la pestaña "Agregar referencia", ".Net", seleccione el archivo PIA, use la opción "copiar loacal". (Funcionó para mí ...)
Atara
Microsoft.mshtml.dll de la carpeta PIA no está firmado.
Si ha firmado un proyecto, debe tomar la versión de la carpeta "Asambleas de interoperabilidad primaria".
Para hacer eso:
1. Elimine la referencia a Microsoft.mshtml (si tiene una en su proyecto)
2. Haga clic en "Agregar referencia" y luego NO seleccione "Extensiones" sino "Examinar" y seleccione "C: / Archivos de programa (x86) / Microsoft.NET / Asambleas de interoperabilidad primaria" (para máquinas de .64 bits) - esa versión está firmado.
3. Edite las propiedades (seleccione microsoft.mshtml reference y presione F4) para configurar:
Incrustar tipos de interoperabilidad = falso
Copiar Local = verdadero
4. Reconstruye tu proyecto