2010-04-13 16 views
7

Estoy publicando una aplicación ClickOnce con VS2008, pero antes de cada publicación tengo que cambiar a la configuración de liberación manualmente. Esto está bien por lo que no me olvide de cambiar. ¿Hay alguna manera de evitar la implementación de compilaciones de depuración? ¿Hay alguna directiva de compilación como:Impedir la implementación de la creación de depuración con ClickOnce

#if DEBUG 
#if ClickOnce 
#error You cannot publish a debug build 
#endif 
#endif 

O hay una manera (sin scripts de construcción) para que cambie automáticamente a la versión de configuración antes de publicar?

(he encontrado algunas preguntas similares, pero no le gustó el anwsers en ellos)

Gracias

+0

¿No le ha avisado que * algo no coincide * y pide confirmación antes de anular cuando intenta publicar una versión de depuración sobre una compilación de lanzamiento (sin dicho diálogo al publicar la versión correcta)? –

+0

Gracias, pero desafortunadamente no, no hay tal diálogo. – jomi

+0

relacionado: http://stackoverflow.com/questions/47107/clickonce-disallow-publishing-of-debug-builds que proporciona un enlace a http://msdn.microsoft.com/en-us/library/ms164307.aspx – mbx

Respuesta

2

No estoy seguro si esto está mal visto, pero por favor ver mi respuesta en el hilo relacionada:

https://stackoverflow.com/a/15080048/571237

En resumen puede modificar los archivos de proyecto para verificar si hay símbolos de depuración antes de ser impresos, y un tiro una condición de error si se encuentran. Esto evita que la implementación ocurra sin necesidad de ningún archivo .bat o procesamiento externo.

+0

Gracias, el complemento funcionó bien, pero todos tuvieron que instalarlo. Ahora puedo usar: jomi

0

Siento decirte esto, pero no hay manera de hacer esto. Y jomi tiene razón, obtienes el diálogo si cambias la clave de firma, pero no si cambias la configuración de compilación. Solo debes prestar mucha atención cuando implementes tu producto.

RobinDotNet
Visitar mi ClickOnce blog!

+0

+1 porque el blog es increíble. Ahora tienes un nuevo lector. –

+0

Gracias! Tengo algunas próximas entradas en .NET 4.0 y ClickOnce. Espero que sean útiles! – RobinDotNet

+0

Eso está mal: este es el truco: http://stackoverflow.com/questions/47107/clickonce-disallow-publishing-of-debug-builds/15080048#15080048 – schlamar

1

La mejor solución que he encontrado hasta ahora es escribir un VS2008 complemento en base a: http://msdn.microsoft.com/en-us/library/ms165638.aspx

public void OnPublishBegin(ref bool pubContinue) 
    { 
     if (pubContinue && _applicationObject.Solution.SolutionBuild.ActiveConfiguration.Name != "Release") 
     { 
      System.Windows.Forms.MessageBox.Show("You can only publish a Release build"); 
      pubContinue = false; 
     } 
    } 

Cualquier otra idea se aprecian.

+0

¡Gran sugerencia! Soluciona mi problema y me permite agregar otras funciones útiles. – Dan

Cuestiones relacionadas