vscode visual tutorial studio para instalar espaƱol debug configurar code javascript visual-studio-2010

tutorial - visual studio code javascript



Manejo de archivos JavaScript comunes en Visual Studio 2010 (9)

Al final, así es como lo logré. Puede que no sea del gusto de todos, pero funcionó para mí.

Nota: en todos nuestros proyectos, los recursos estáticos están en un directorio raíz llamado ''Activos'', por lo que JavaScript siempre está en / Assets / js / y CSS / Assets / css /.

Solución

  1. En el proyecto que va a ''importar'' el código común, simplemente agrego el archivo .js común ''As Link'' en / Assets / js /.
  2. Vaya a Propiedades de esa nueva adición y configure ''Copiar en directorio de salida'' a ''Copiar si es más nuevo''.
  3. Ahora simplemente edito la línea de comando de eventos posteriores a la construcción del proyecto a lo siguiente: xcopy / Y / E "$ (TargetDir) / Assets" "$ (ProjectDir) / Assets"

Cuando se construye el proyecto, copia los archivos importados en / bin / Assets / js - el evento posterior a la construcción toma una copia de los mismos en el directorio del proyecto - a tiempo para que el sitio los use.

Estamos empezando a trabajar en un par de aplicaciones web completamente dependientes de JavaScript (nuestras aplicaciones anteriores han sido ASP.NET MVC, con la "bondad" de JavaScript salpicada por encima).

Tenemos algunos archivos que se compartirán en general, y sería bueno almacenar estos archivos en un proyecto común, y ''Agregar como enlace'' en proyectos individuales (como sería posible con el código compilado).

Obviamente, esto no funciona con algo como JavaScript, ya que el archivo no está realmente ''allí'' en la ubicación correcta.

¿Alguien tiene alguna sugerencia para mantener una sola versión de un archivo JavaScript compartido, para usar en múltiples proyectos?


Cualquiera que tropiece con esta pregunta aquí en el futuro debe saber que ahora hay Proyectos Compartidos en Visual Studio para resolver este problema. Los proyectos universales de Windows los usan de forma predeterminada y puede crear el suyo descargando e instalando la extensión VS aquí: https://visualstudiogallery.msdn.microsoft.com/315c13a7-2787-4f57-bdf7-adae6ed54450

Una vez que haya descargado la extensión, puede agregar un Proyecto compartido (Vacío) a su solución. El proyecto se puede encontrar en las plantillas de proyecto para Visual C #, Visual C ++ y JavaScript.

Luego incluya los archivos que desea compartir en el proyecto compartido en cualquier estructura de carpetas que tenga sentido para usted.

A continuación, incluirá el proyecto compartido como referencia compartida en los otros proyectos en esa solución que necesitan acceso a los archivos compartidos. Haga clic con el botón derecho en el otro proyecto y elija "Agregar referencia de proyecto compartido".

Ahora puede hacer referencia a los archivos compartidos en su proyecto principal como si los archivos en el proyecto compartido existieran allí. Se compilan como parte de ese proyecto.

La tecnología fue diseñada para que las aplicaciones universales compartan el código entre las aplicaciones Windows Phone y Windows Store, así que ten en cuenta que puedes tener problemas para compartir en diferentes escenarios, pero vale la pena intentarlo para ver si satisface tus necesidades.


Esta publicación de blog describe una solución alternativa a la respuesta de @beardtwizzle:

http://consultingblogs.emc.com/jamesdawson/archive/2008/06/03/using-linked-files-with-web-application-projects.aspx

La idea es similar:

  1. Agregue el archivo compartido a un proyecto web como un enlace
  2. Modifique el paso de compilación _CopyWebApplication en el proyecto, de modo que los archivos vinculados se copien con la ruta de destino correcta.

Por lo tanto, en lugar de un evento de compilación posterior, los archivos se copian mediante un paso de compilación modificado. Para mí, esta solución se siente un poco más limpia (pero esto puede ser una cuestión de gusto). De todos modos, acabo de agregar esto a nuestra solución y funciona muy bien hasta ahora.



Sé que este problema es antiguo, pero aún quería presentar mi solución porque es un poco más simple que el de beardtwizzle.

Puede asegurarse de que Visual Studio copie todos los archivos vinculados a donde colocó el enlace en el Explorador de soluciones de Visual Studio al agregar esto al final de su archivo .csproj:

<Target Name="CopyLinkedContentFiles" BeforeTargets="Build"> <Copy SourceFiles="%(Content.Identity)" DestinationFiles="%(Content.Link)" SkipUnchangedFiles=''true'' OverwriteReadOnlyFiles=''true'' Condition="''%(Content.Link)'' != ''''" /> </Target>

Describí cómo funciona esto en mi blog en http://mattperdeck.com/post/Copying-linked-content-files-at-each-build-using-MSBuild.aspx



También puedo ver que esta pregunta es antigua, pero pensé que agregaría mis dos centavos ...

Tengo un archivo Javascript en un proyecto separado. Agregué una referencia vinculada y esto funciona bien para la publicación, pero no funciona en IIS Express o Casinni. Traté de agregar un enrutamiento personalizado para capturar el archivo que falta y volverlo a mapear manualmente, pero es un truco y por alguna razón dejó de funcionar cuando actualicé a MVC 5.1, así que en lugar de arreglar el truco, encontré una forma mejor:

System.Web.Optimization tiene paquetes de Javascript.

En su proyecto compartido, configure el Copy To Output Directory para ''Copiar siempre'' y Build Action para ''Contenido'' en su archivo js. Esto significa que sus archivos js terminan en la carpeta bin de su proyecto de sitio web. No se pueden servir desde allí (IIS no sirve nada en la carpeta bin por razones obvias de seguridad), pero se pueden incluir en paquetes

using System.Web; using System.Web.Optimization; public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/externalLibrary").Include( "~/bin/scripts/externalLibrary.js" )); } }

Luego debe agregar esto a Application_Start en su archivo global.asax (justo al lado de las rutas de registro)

BundleConfig.RegisterBundles(System.Web.Optimization.BundleTable.Bundles);

luego usa tu enlace de paquete en tu razor cshtml:

<script type=''text/javascript'' src=''@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/externalLibrary")''></script>

Necesitarás el paquete nuget para microsoft.aspnet.web.optimization


Use el control de versión adecuado.

Mantenga el js en un lugar y luego simplemente git pull (o el equivelant Mercurial / Bazaar) de nuevo en su código cada vez que haya actualizado su javascript.


gran pregunta, he estado pensando en esto por bastante tiempo. Las únicas soluciones que han aparecido en mi mente son alojar los archivos en la web y usarlos como un cdn o usar enlaces simbólicos. Puede agregar un fragmento de código en su estudio visual para hacer referencia a ellos.