2011-11-01 27 views
15

Esto es una locura, pero parece que no puedo obtener todos mis puntos de vista/contenido/scripts publicados cuando publico el sitio. Esto parece suceder, creo, cuando mi proyecto no hace referencia directa a la vista o al contenido, pero los usa otro ensamblado de mi proyecto. Por lo que podría tener:ASP.NET MVC3 proyecto no siempre publica todas las vistas/contenido

  • ExternalAssembly.dll referencia (que se publica)
  • necesitaré ExternalLogin.cshtml en mi proyecto principal, bajo mi punto de vista carpeta
  • ExternalLogin.cshtml no consigue publicado

Ahora tengo un script que copia todo en la carpeta Views y lo vuelca donde quiero desplegarlo, pero VS debería hacer esto por mí. ¿Qué estoy haciendo mal?

+0

¿Puede publicar el fragmento relevante de su archivo de proyecto MVC (no el archivo de proyecto externo) para la vista en cuestión si ninguna de las respuestas ayuda? –

Respuesta

11

¿Tus archivos de vistas están en otro proyecto o carpeta fuera de tu proyecto actual? Normalmente, los archivos deben existir en el proyecto del sitio web, en su carpeta de vistas, no externamente, y la acción de compilación debe establecerse en Content y no copiarse en la carpeta de salida. Pero hay algunas soluciones:

  • Duplíquelas en su carpeta de vistas del sitio y asegúrese de que estén marcadas (como se indica en otra respuesta). Una cosa a tener en cuenta es que puedes agregarlos como "Archivos Vinculados" en Visual Studio, lo que les permite existir en dos lugares en la jerarquía sin tener que existir en dos lugares en el disco: http://support.microsoft.com/kb/306234
  • Si tienes control sobre la biblioteca externa, puede compilarlos como recursos incrustados o usar Razor Generator o algo similar y usar un motor de vista personalizado para devolverlos: How can I make ASP.NET MVC 3 use views (aspx, ascx) files from an external assembly in my website?
  • Coloque manualmente las copias en el XML de compilación .csproj utilizando la tarea Copiar: http://msdn.microsoft.com/en-us/library/3e54c37h.aspx (Tenga en cuenta que esto hará que funcione en el estudio visual haciendo básicamente lo que está haciendo ahora, ya que será parte de la compilación de Visual Studio si lo agrega al destino AfterBuild o algo así)
13

Al hacer clic en uno de estos archivos, ¿cuál es la acción de compilación para él en las propiedades? Contenido .... o? Establecer como contenido

+1

Los archivos están configurados correctamente para el contenido, desafortunadamente, esperaba que esto también fuera fácil. –

Cuestiones relacionadas