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