c# - visual - ClickOnce-No se puede publicar porque un proyecto no se pudo compilar
signtool error no certificates were found that met all the given criteria (11)
Cuando intento publicar mi aplicación (WPF, C #), obtengo estos errores:
No se puede publicar porque un proyecto no se pudo construir.
No se pudo encontrar el archivo ''obj / x86 / Debug / MyAPP.exe''
Recibo estos errores sin importar desde donde publico: asistente de publicación, menú de compilación o clic derecho en proyecto - publicar.
Primero funcionó bien, pero hice lo siguiente:
Cambié la fecha de mi computadora al 10/10/2013, estaba intentando otra cosa.
Olvidé esto y hago clic en construir. Luego puse la fecha adecuada en la computadora. Después de eso me sale estos errores.
También cada vez que hago clic en ejecutar Visual Studio, crea un proyecto si hay cambios en el proyecto.
También noté que cuando establezco la fecha después del 10/10/2013 funciona bien.
Supongo que estoy buscando algunas configuraciones en mi proyecto donde se establece esta fecha de construcción.
Intenté construir, reconstruir, solución limpia.
A veces he tenido problemas con la publicación de un proyecto ASP.NET, porque el asistente de publicación no pudo eliminar los archivos en el directorio en el que estaba intentando publicarlos.
Intenta borrar esos archivos manualmente antes de publicarlos. También puedes ver la ventana de salida; a veces le dará algunos consejos sobre por qué falló la publicación.
Acabo de encontrarme con el problema hoy. En mi caso particular, fue causado por Microsoft Windows Update , Microsoft Security Advisory 2661254 (en relación con la longitud mínima de la clave del certificado).
Desinstalé esa actualización y la publicación comenzó a funcionar como siempre lo había hecho. Esto es solo una solución temporal y significa que probablemente debería regenerar sus claves / certificados.
Cerrar y abrir Visual Studio funcionó para mí.
Con la fecha nuevamente normal, cierre VS e intente eliminar sus archivos * .suo junto a los archivos * .sln y luego vuelva a abrir la solución
En mi caso, el problema surge cuando agregué la siguiente sección en el archivo .csproj:
<Target Name="AfterBuild">
</Target>
Este es un problema con Visual Studio que puede ocurrir cuando tiene complementos instalados. En lugar de usar el botón Publicar en la pestaña Publicar, use Crear / Publicar en el menú en la parte superior de Visual Studio.
Si usas el botón Publicar, se ejecuta a través de los complementos antes de hacer la compilación (o algo así). Si, por el contrario, usa Generar desde el menú, va directamente a msbuild e ignora los complementos que haya instalado.
Si tiene DevExpress instalado y aún tiene problemas, consulte este artículo: http://www.devexpress.com/Support/Center/p/Q260132.aspx
He tenido este error cuando estaba intercambiando ramas de git. A Rebuild All arregló esto para mí.
No estoy seguro exactamente de qué manera su máquina de desarrollo se puede ensuciar de esta manera, pero esto también sucedió para varios desarrolladores de nuestro grupo.
Después de investigarlo, parece que el script de creación / publicación incorporado que utiliza Visual Studio (2010 en nuestro caso) tiene una falla en el orden en que hace las cosas. Lo más importante es que ejecuta una limpieza en el directorio OBJ eliminando el archivo EXE de destino antes de que el paso de publicación pueda capturarlo.
La solución
Esto es algo así como una solución hacky, pero resolvió el problema para mí.
La solución es volver a copiar el archivo en la carpeta /obj/
carpeta /bin/
justo antes del paso de publicación. Desafortunadamente, no hay forma de que sepa especificar un evento BeforePublish a través del IDE, por lo que tendrá que editar el archivo .vbproj en un editor de texto.
Agregue la siguiente sección justo antes de la etiqueta final </project>
.
<Target Name="BeforePublish">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(IntermediateOutputPath)" />
</Target>
Resolví mi problema. El problema fue el tiempo "modificado" de algunos archivos. Utilicé el programa Timestamp para arreglarlo.
Como dije en mi pregunta, el problema fue que construí la solución y la fecha era en el futuro. Por eso, cada vez que presionaba F5 Visual Studio estaba compilando la solución completa de nuevo y Publish ClickOnce no funcionaba.
Si nada más funciona, prueba esto:
- Fije su fecha a la fecha apropiada.
- Con VS cerrado, elimine todas las carpetas bin y obj de su solución.
- Crear una nueva solución vacía.
- Añade tus proyectos existentes a la solución.
- Agregue de nuevo las referencias necesarias.
- Reconstruye para asegurarte de que no te perdiste nada.
- Publicar.
Si lo desea, también puede intentar los pasos 1, 2, 6, 7 antes, si no tiene ganas de hacer una nueva solución.
Simplemente cree un nuevo certificado de manifiesto ClickOnce, y funcionará de nuevo.