24

Estoy empezando con Silverlight y recientemente agregué un proyecto de Silverlight a una solución establecida. En este caso particular, mi solución incluía un sitio web ASP.NET existente (no una aplicación) que Visual Studio amablemente ofreció integrar en mi aplicación Silverlight, que acepté.Cómo hacer que el XAP de Silverlight se copie al bin del cliente en la compilación

De modo que todo está bien y todo, y el XAP de Silverlight se está copiando en el directorio ClientBin del sitio web. Ahora he decidido comenzar una nueva aplicación web ASP.NET MVC que eventualmente reemplazará el sitio web anterior (que no es MVC). Pero no puedo, por la vida de mi entender, lo que Visual Studio modificó para que el XAP aparezca automáticamente en el ClientBin del sitio web en la compilación, para que pueda reproducir eso en mi sitio MVC.

Así que mi pregunta es, en esencia, ¿cuáles son los pasos manuales para que Visual Studio copie de forma automática el XAP de una aplicación Silverlight en una aplicación web ASP.NET MVC recién agregada?

+0

Gracias por la solución. –

Respuesta

16

La copia del XAP al ClientBin es una tarea de MSBuild. Si está utilizando una plantilla de proyecto ASP.NET estándar, puede encontrarla en la sección de enlace de Silverlight.

Para todo lo demás, es posible que pueda descifrar el nombre de la tarea MSBuild y agregarla a su proyecto ASP.NET MVC. La solución más fácil probablemente sea usar un evento personalizado de post-construcción en el proyecto APS.NET para copiar el archivo.

No ocurre nada "mágico", salvo que se copia el archivo XAP del directorio BIN de su proyecto Silverlight al ClientBin de su aplicación web. Ni siquiera tiene que vivir dentro del directorio ClientBin; puede copiarlo en cualquier directorio o en la raíz de su sitio.

Actualización: El recientemente publicado Beta 1 de ASP.NET MVC incluye soporte para proyectos de Silverlight, lo que puede enlazar a su aplicación ASP.NET MVC de la misma manera lo hace para las aplicaciones ASP.NET regulares.

+0

¡Dulce! Gracias por la actualización. –

35

Puede hacerlo a través de las propiedades de su proyecto web. Las herramientas de Silverlight para el estudio visual agregan una nueva pestaña a las propiedades de los proyectos web llamados "Enlaces de Silverlight".

Agregue una referencia a su proyecto Silverlight aquí, con la carpeta donde lo desee, y visual studio hará la copia por usted.

+5

Si no tiene la pestaña "Enlaces de Silverlight" en su proyecto web; instalar el SDK de Silverlight – detroitpro

4

Ir a la página de propiedades de la aplicación Silverlight, elija Generar Eventos Tab, Enter siguiente línea en la posterior a la generación de eventos de línea de comandos:

copy $(TargetDir)*.xap $(SolutionDir)<youar web solution folder name such as app.web>\ClientBin 

ahora en adelante, en cada generación exitosa, el archivo XAP será copiado automáticamente

2

Esta es una publicación algo más antigua, por lo que probablemente haya cambiado ... en mi Visual Studio en el proyecto web hay una pestaña llamada "Aplicaciones Silverlight". Hay un botón agregar allí para proyectos existentes que importa en la solución y puede agregarlos y elegir colocar el xap en ClientBin o en cualquier otro lugar. No estoy seguro si debe tener el SDK instalado para tener esta pestaña. Lo tengo instalado así que es posible que tengas que hacerlo. No hago MVC, por lo que puede ser diferente para los proyectos de MVC, no lo sé.

Cuestiones relacionadas