我有常见的asp.net mvc项目。
我有一个包含把手模板,javascript模块和样式表的模块。 该模块用于不同的页面并放在div标签内的某个位置。
新要求是将此模块用于其他解决方案。但我不想只复制和粘贴与模块相关的所有文件(js,html,css),因为很难将其维护到不同的解决方案中。
所以,我的问题是我应该以什么方式组织这个模块只被声明一次并用于不同的解决方案。
答案 0 :(得分:1)
我之前有过相同的要求,这就是我处理它的方式:
在我的解决方案中,我添加了一个新的Shared
文件夹并创建了一个Shared
项目。你不一定要进入一个新项目,我只是这样做,因为共享项目还包括共享的MVC逻辑。
重要的是要知道这一步是可选的,它只是帮助开发人员,因为文件仍然在预期的位置。现在你已经拥有了Project1
,Project2
和Shared
。现在在Project1
(例如)中,将您的文件单独添加回来。但请按照以下步骤操作:
Add
上,然后选择Existing Item
Shared
项目中的文件,然后选择文件Add as Link
这样做的好处是,当您在Project2
中单击解决方案资源管理器中的文件时,它将在Shared
中打开该文件。
在使用Shared
文件的每个项目中,您需要添加Pre Build Events
。目前,虽然项目包含对共享文件的引用,但在运行项目时它实际上不会执行任何操作。解决方案是构建事件:
Properties
Build Events
在Pre-build event command line
部分中输入以下内容:
xcopy /R /E /Y "$(SolutionDir)SharedProject\Scripts" "$(ProjectDir)Scripts"
解释:这将复制共享项目中scripts目录的内容,并将其添加到(或替换)当前项目脚本目录中。您需要为每个文件夹添加一行(例如HTML,CSS等)