2010-02-01 22 views
9

He creado una aplicación WPF y he ofuscado el .exe principal con una herramienta externa.¿Es posible ofuscar una aplicación ClickOnce creada en Visual Studio 2008?

Ahora estoy teniendo problemas para publicarlo como una aplicación ClickOnce, porque Visual Studio de alguna manera está recompilando nuevamente el ejecutable principal.

que desactiva las casillas de verificación bajo construye Solution Manager → Configuración, pero no funcionó: el ejecutable sigue siendo reconstruida cuando publico la aplicación de http://localhost/MyApplication

¿Es posible desplegar mi aplicación ClickOnce sin recompilación el proyecto actual?

Si eso no es posible, ¿existe una herramienta gratuita para generar una aplicación ClickOnce con archivos específicos deseados?

+0

Eche un vistazo a http://stackoverflow.com/questions/3416223/how-to-use-obfuscation-for-clickonce/12036582#12036582 (¿posible duplicado?) – Matmarbon

Respuesta

7

responsabilidad: yo trabajo para de soluciones Preferente, los fabricantes de Dotfuscator. El problema con la solución de Jared es que una tarea de compilación posterior se ejecuta demasiado tarde en el proceso de compilación cuando los pasos de compilación de ClickOnce crean los manifiestos (incluidas las firmas de ensamblado, los cambios de ofuscación) mucho antes de que se dispare la compilación. Puede hackear el archivo MSBuild (su archivo .csproj/.vbproj) para llamar a la tarea de ofuscación en el paso AfterCompile y hacer que el ofuscador vuelque los ensamblados ofuscados en el directorio bin de construcciones, pero esto es un problema.

Una segunda alternativa es el uso de las herramientas de Mage/MageUI para recrear el ClickOnce se manifiesta mediante la publicación de la solicitud, ofuscar los conjuntos, sobrescribiendo los conjuntos publicados con las versiones ofuscado y luego ejecutar Mago para recrear los manifiestos como se muestra here. La documentación para la utilidad Mage es here.

Una tercera alternativa es si su ofuscador es Dotfuscator Professional edition versión 4.6.1010 o superior. Dotfuscator tiene la capacidad de leer directamente un manifiesto de implementación de ClickOnce como entrada, ofuscar los ensamblajes y generar tanto los ensamblajes ofuscados como los archivos de manifiesto completamente actualizados. Ver here para un punto de partida.

1

No entiendo exactamente por qué ClickOnce tiene este comportamiento aparente. Sin embargo, debería poder evitar esto al insertar el paso de ofuscación en el sistema de compilación. Intente definir una tarea de compilación posterior que ejecute el ofuscador contra el EXE/DLL. Dado que esto se ejecutará como parte de la compilación, ClickOnce recuperará o no la reconstrucción ofuscada de DLL.

También le ahorrará la molestia de ejecutar de forma manual :)

2

Para su información, esto se maneja en Visual Studio 2010.

Mientras tanto, usted tiene que publicar en una carpeta, ofuscar las asambleas, y volver a firmar el despliegue utilizando ya sea mago o MageUI. Esto se debe a que ClickOnce mezcla los ensamblajes, y cuando los ofusca, cambia los valores hash, y ya no coinciden con la información en el manifiesto.

RobinDotNet

0

Mi empresa escribe una pieza de software llamada ClickOnceMore que es ideal para este escenario. ClickOnceMore es la herramienta ClickOnce que se puede utilizar para automatizar ClickOnce como parte de un gran proceso de compilación.

Utilizando las reglas de inclusión de archivos puede incluir sus ensamblajes ofuscados en el proyecto ClickOnceMore y luego crear los manifiestos de ClickOnce utilizando la herramienta de línea de comandos ClickOnceMore.

Muchos de nuestros clientes usan ClickOnceMore para crear manifiestos de ClickOnce con ensamblajes ofuscados. Puede encontrar el software en www.clickoncemore.net.

Cuestiones relacionadas