Asp NET 在不同解决方案中共享 html 组件
Asp NET shared html component in different solutions
我有共同的 asp.net mvc 项目。
我有一个包含车把模板、javascript 模块和样式表的模块。
该模块用于不同的页面并放置在 div 标记内的某个位置。
新要求是将此模块用于其他解决方案。但我不想只复制并粘贴与模块相关的所有文件(js、html、css),因为很难将其维护到不同的解决方案中。
所以,我的问题是我应该以什么方式组织这个模块,使其只声明一次并用于不同的解决方案。
我之前也遇到过同样的需求,我是这样处理的:
移动您的共享内容
在我的解决方案中,我添加了一个新的 Shared
文件夹并创建了一个 Shared
项目。你不一定要进入一个新项目,我这样做是因为共享项目还包括共享 MVC 逻辑。
将链接的共享文件添加到解决方案
重要的是要知道此步骤是可选的,它只是帮助开发人员,因为文件仍在预期的位置。现在您有例如:Project1
、Project2
和 Shared
。现在在 Project1
(例如)中,分别添加您的文件。但请按照以下步骤操作:
- 右键单击要将文件添加到的文件夹
- 将鼠标悬停在
Add
然后 select Existing Item
- 导航到
Shared
项目中的文件和 select 文件
- 点击“添加”之前,请注意箭头
- 点击这个,select
Add as Link
这样做的好处是,当您在 Project2
中单击解决方案资源管理器中的文件时,它将打开 Shared
中的文件。
添加构建前事件
在每个使用 Shared
文件的项目中,您需要添加 Pre Build Events
。目前,尽管该项目包含对共享文件的引用,但当您 运行 项目时它实际上不会执行任何操作。解决方案是构建事件:
- 右键单击您的项目并 select
Properties
- Select
Build Events
在菜单中
在 Pre-build event command line
部分输入以下内容:
xcopy /R /E /Y "$(SolutionDir)SharedProject\Scripts" "$(ProjectDir)Scripts"
解释一下:这将复制您共享项目中脚本目录的内容,并将其添加到(或替换)您当前项目的脚本目录中。您需要为每个文件夹添加一行(例如 HTML、CSS 等)
我有共同的 asp.net mvc 项目。
我有一个包含车把模板、javascript 模块和样式表的模块。 该模块用于不同的页面并放置在 div 标记内的某个位置。
新要求是将此模块用于其他解决方案。但我不想只复制并粘贴与模块相关的所有文件(js、html、css),因为很难将其维护到不同的解决方案中。
所以,我的问题是我应该以什么方式组织这个模块,使其只声明一次并用于不同的解决方案。
我之前也遇到过同样的需求,我是这样处理的:
移动您的共享内容
在我的解决方案中,我添加了一个新的 Shared
文件夹并创建了一个 Shared
项目。你不一定要进入一个新项目,我这样做是因为共享项目还包括共享 MVC 逻辑。
将链接的共享文件添加到解决方案
重要的是要知道此步骤是可选的,它只是帮助开发人员,因为文件仍在预期的位置。现在您有例如:Project1
、Project2
和 Shared
。现在在 Project1
(例如)中,分别添加您的文件。但请按照以下步骤操作:
- 右键单击要将文件添加到的文件夹
- 将鼠标悬停在
Add
然后 selectExisting Item
- 导航到
Shared
项目中的文件和 select 文件 - 点击“添加”之前,请注意箭头
- 点击这个,select
Add as Link
这样做的好处是,当您在 Project2
中单击解决方案资源管理器中的文件时,它将打开 Shared
中的文件。
添加构建前事件
在每个使用 Shared
文件的项目中,您需要添加 Pre Build Events
。目前,尽管该项目包含对共享文件的引用,但当您 运行 项目时它实际上不会执行任何操作。解决方案是构建事件:
- 右键单击您的项目并 select
Properties
- Select
Build Events
在菜单中 在
Pre-build event command line
部分输入以下内容:xcopy /R /E /Y "$(SolutionDir)SharedProject\Scripts" "$(ProjectDir)Scripts"
解释一下:这将复制您共享项目中脚本目录的内容,并将其添加到(或替换)您当前项目的脚本目录中。您需要为每个文件夹添加一行(例如 HTML、CSS 等)