2009-06-23 8 views
5

Tengo una aplicación de consola C++ que me gustaría publicar con clickonce.Es posible hacerse clic con el ejecutable regular de C++

Cuando ejecuto la herramienta mageui.exe e importo los archivos ejecutables y dependientes para hacer un manifiesto de la aplicación, no me deja establecer app.exe como punto de entrada. Puedo establecer el punto de entrada, pero cuando hago clic en la línea y salgo a guardar, borra el diálogo y se queja de que no tengo un punto de entrada válido.

Si guardo de todos modos, entryPoint está vacío en el manifiesto resultante. Eso hace que el clickonce falle porque no hay un punto de entrada válido.

He intentado crear manualmente un punto de entrada de la siguiente manera:

<entryPoint> 
    <assemblyIdentity 
     type='win32' 
     name='My App' 
     version='0.9.1.0' 
     processorArchitecture='msil' 
     language='en-US'/> 
    <commandLine 
     file="app.exe" 
     parameters="run"/> 
    </entryPoint> 

que no funciona bien.

+0

También he intentado esto con la arquitectura del procesador establecida en x86 sin éxito. – Jon

Respuesta

3

Entre la "identidad del ensamblado" y la configuración del procesador en MSIL, parece que está diciendo que el punto de entrada está en un ensamblado .NET de algún tipo.

Desafortunadamente, desde la búsqueda superficial parece que no puede implementar una aplicación no administrada/nativa con clickonce. El punto de entrada debe ser administrado.

Puede crear una cuña como se describe here.

0

La aplicación debe ser administrada. ClickOnce utiliza el sistema de seguridad integrado en el CLR para restringir lo que la aplicación puede hacer. El código nativo no tiene nada de eso.

0

No estoy de acuerdo, see this article. Si funciona para una aplicación MFC, seguramente funcionará para cualquier otra aplicación C++ no administrada también. La solución fue incrustar un archivo fuente compilado con/clr. (Recuerde que C++ se puede compilar en MSIL) This article from the MSDN seems to agree too.

Cuestiones relacionadas