Javascript Asp NET在不同解决方案中共享html组件

Javascript Asp NET在不同解决方案中共享html组件,javascript,html,css,asp.net-mvc,visual-studio,Javascript,Html,Css,Asp.net Mvc,Visual Studio,我有一个普通的asp.NETMVC项目 我有一个包含把手模板、javascript模块和样式表的模块。 此模块用于不同的页面,并放置在div标记内的某个位置 新的需求是将此模块用于其他解决方案。但我不想只复制和粘贴与模块相关的所有文件(js、html、css),因为很难将其维护到不同的解决方案中 所以,我的问题是,我应该以何种方式组织这个模块,使其只声明一次,并用于不同的解决方案中 我以前也有过同样的要求,我就是这样处理的: 移动共享内容 在我的解决方案中,我添加了一个新的Shared文件夹,并

我有一个普通的asp.NETMVC项目

我有一个包含把手模板、javascript模块和样式表的模块。 此模块用于不同的页面,并放置在div标记内的某个位置

新的需求是将此模块用于其他解决方案。但我不想只复制和粘贴与模块相关的所有文件(js、html、css),因为很难将其维护到不同的解决方案中


所以,我的问题是,我应该以何种方式组织这个模块,使其只声明一次,并用于不同的解决方案中

我以前也有过同样的要求,我就是这样处理的:

移动共享内容 在我的解决方案中,我添加了一个新的
Shared
文件夹,并创建了一个
Shared
项目。你不必进入一个新的项目,我这样做是因为共享项目还包括共享MVC逻辑

将链接的共享文件添加到解决方案 重要的是要知道,这一步是可选的,只是它帮助开发人员使文件仍然在预期的位置。现在您有了例如:
Project1
Project2
共享的
。现在,在
Project1
(例如)中,分别添加您的文件。但请遵循以下步骤:

  • 右键单击要将文件添加到的文件夹
  • 将鼠标悬停在
    Add
    上,然后选择
    Existing Item
  • 导航到
    共享
    项目中的文件并选择该文件
  • 单击“添加”之前,请注意箭头
  • 单击此项,然后选择添加为链接
  • 这样做的好处是,当您在
    Project2
    中单击解决方案资源管理器中的文件时,它将在
    Shared
    中打开该文件

    添加预构建事件 在使用
    共享
    文件的每个项目中,您需要添加
    预构建事件
    。目前,尽管项目包含对共享文件的引用,但在运行项目时它实际上不会做任何事情。解决方案是生成事件:

  • 右键单击项目并选择
    Properties
  • 在菜单中选择
    buildevents
  • 预生成事件命令行
    部分输入以下内容:

    xcopy/R/E/Y“$(SolutionDir)SharedProject\Scripts”“$(ProjectDir)Scripts”


  • 解释:这将复制共享项目中脚本目录的内容,并将其添加(或替换)到当前项目脚本目录中。您需要为每个文件夹(例如HTML、CSS等)添加一行。

    @bogdan如果您使用TeamCity进行自动部署,您还必须添加生成事件。我使用TFS进行自动部署。但是在这种情况下,我还应该添加构建事件。