vb.net compiler-construction publishing

vb.net - Asambleas Firma Firma



compiler-construction publishing (10)

Acabo de tener este problema también. En mi caso, se hizo referencia a blabla.dll en mi solución, pero blabla.dll también se usó en another.dll, que mencioné en mi proyecto.

Al comprobar las versiones de ambos blabla.dll no eran lo mismo. Así que actualicé another.dll con el blabla.dll correcto y luego hice referencia al nuevo another.dll en mi solución. El error desapareció

En resumen: estaba usando 2 versiones de blabla.dll

Espero que esto tenga sentido, si no me lo dices. :)

Consulte mi blog para una explicación más detallada: artículo del blog

Saludos, Jacob Iedema

Tengo un proyecto que hice en Visual Basic 2008 Express. Lo convertí del proyecto C # de otra persona, pero funciona. Tiene varias dependencias de DLL. Fui a publicar mi proyecto para poder instalarlo en otra máquina y para cada DLL, aparece un error: "El ensamblaje debe estar fuertemente firmado para poder marcarlo como un requisito previo". Investigué un poco, pero no encuentro mucho y lo que descubrí realmente no lo entiendo. ¿Qué significa este error? ¿Cuál es la mejor manera de resolverlo? Otra cosa: me tomó MUCHO tiempo poder hacer referencia a todos mis discos duros, por lo que prefiero que la solución no tenga NADA que ver con mover archivos DLL, ya que es probable que rompa la funcionalidad en mi proyecto principal.


Compruebe que el Marco de objetivos esté realmente configurado en 3.5 o en el marco al que desee orientar sus anuncios. A veces se producirá un error cuando no está configurado correctamente.


Encontré mi problema en el archivo .csproj

<Reference Include="OtherProjectNothingToDo"> <HintPath>../../../../Pedidos/XBAP/Pedidos/Pedidos/bin/Release/Pedidos.exe</HintPath> </Reference>

Luego lo eliminé usando el bloc de notas y está bien ahora.


Esto funcionó para mí después de que fallaron las soluciones mencionadas anteriormente:

Elimine la referencia al ensamblaje por error, luego agréguelo nuevamente.


La solución es más simple que eso:

  1. Ve a tu proyecto
  2. Haga clic derecho y seleccione Propiedades.
  3. Ve a la pestaña Seguridad.
  4. Desmarque Habilitar la configuración de seguridad de ClickOnce.

A menos que implemente esta aplicación a través de ClickOnce, no necesita StrongName sus ensamblajes.


Los ensamblajes fuertemente nombrados son principalmente ensamblajes que están firmados por una clave criptográfica. Esto es bastante fácil de hacer con Visual Studio y no requiere volver a ordenar sus dependencias.

Estoy usando Visual Studio no expreso, por lo que los pasos pueden ser ligeramente diferentes para usted.

  • Haga clic derecho en el proyecto y seleccione propiedades
  • Haga clic en la pestaña Firma
  • Marque "Firmar el ensamblado"
  • En el cuadro combinado, seleccione "<Nuevo ...>"
  • Completa el asistente
  • Reconstruir

Para crear un nombre seguro solo vaya al Símbolo del sistema de SDK o al Símbolo del sistema de Visual Studio 200X y luego escriba lo siguiente

sn -k sgKey.snk

Consulte este enlace para más detalles

A continuación, asocie el nombre seguro a su ensamblaje ejecutando el siguiente comando

al /out:MyAssembly.dll MyOldAssembly.dll /keyfile:sgKey.snk

Consulte este enlace para más detalles


Si está publicando a través de ClickOnce, vaya a la página de publicación y haga clic en "Archivos de la aplicación". A partir de ahí, debería ver una lista de sus DLL. Asegúrese de que los que le causan problemas tengan su estado de publicación marcado como "Incluir" en lugar de "Prerrequisito".

Lo que significa este mensaje de error es que la configuración de publicación actual va a esperar que todos los ensamblados en cuestión estén presentes en la Caché de ensamblados global en la máquina de destino antes de que la instalación pueda tener lugar. Como todos los ensamblajes en el GAC deben estar firmes, cualquier ensamblaje marcado como requisito previo que no esté firmado con firmeza le dará este error.


Usar solución de me permitió publicar, pero descubrí que los usuarios no podían instalar el proyecto una vez que se publicó, ya que el sistema del usuario final se quejaba de la imposibilidad de instalar, teniendo en cuenta el espacio en el disco duro. Como esto parecía altamente improbable de ser la causa raíz, investigué más a fondo.

Aparentemente, la base de mi problema era que una de mis referencias también hacía referencia a un .dll que usaba mi proyecto, pero una versión diferente. ClickOnce no estaba teniendo esto, y se negó a copiar la segunda versión de .dll al sistema del usuario, citando la versión ya presente. Se corrigió para que el .dll y el proyecto hicieran referencia a la misma versión del otro .dll eliminó el error y corrigió el problema de instalación.