¿Cómo puedo ejecutar mi demo XNA directamente desde un CD?

Una compañía me dijo que mejor que poner un instalador en un CD permitiría al usuario ejecutar la demostración directamente desde el CD. ¿Esto es posible incluso cuando la demostración pueda requerir que se ejecuten cosas como el marco XNA? ¿Están realmente mal y un instalador es de hecho necesario para las dependencies?

XNA, al igual que muchas bibliotecas, tiene dependencies en los componentes de time de ejecución que deben estar en su lugar para que las aplicaciones que dependen de él se ejecuten. Si bien estrictamente hablando no se necesita un instalador, la alternativa es pedir o esperar que el usuario tenga las dependencies apropiadas instaladas o instalarlas ellas mismas (lo que hace que la experiencia del usuario sea muy pobre).

Puede crear un file de ejecución automática en su CD que inicia su instalador. Lo que hacen muchos juegos es que el iniciador detecte la presencia de su juego y / o sus dependencies y haga que la aplicación de installation se adapte a lo que está instalado, presentando las opciones de installation normalmente, y si el juego ya está allí, presentando una opción de "lanzamiento" o posiblemente incluso lanzar directamente en el juego (aunque esto puede molestar a los usuarios).

Tenga en count que si opta por no utilizar las soluciones de installation existentes ( NSIS , Inno , Windows Installer , etc.) y escribe su instalador shim usted mismo, debe tener cuidado: incluso el código C y C ++ requiere componentes networkingistribuibles, así que asegúrese de El nivel mínimo de SO que soportas ya los garantiza o crea algo que no dependerá de ellos.

Una vez que las dependencies están en su lugar, el juego en sí puede ser lanzado desde el disco siempre que no intente y escriba en ningún directory relativo, como su propio directory .exe (una aplicación de Windows con buen comportamiento no debería hacer esto de todas forms).

Obviamente, lo anterior solo se aplica a XNA en Windows, ya que es la única plataforma en la que puede ejecutar código en un disco.