Mau*_*ark 5 configurationmanager visual-studio visual-studio-2012
我有一个项目需要为许多不同的客户进行测试和部署,而这些客户有时会有不同的需求.它是一个MVVC应用程序,我使用.net MVC,但只有少数部分和部分,如一些部分视图等,其他一切都是使用knockout.js的单页面应用程序.
所以我有不同的web.config文件,但我有一个包含客户端配置的文件,一个.js文件,对于每个客户都是不同的.
现在,如果使用配置管理器在visual studio中进行不同的配置,我会根据我选择的配置获得不同的web.config,这是完美的.
但是有没有办法在项目中为另一个文件获得相同的结果?
例如有一个myfile.nightly.js和myfile.debug.js等等.(这些文件包含配置设置,如页面颜色或徽标或要隐藏的部分,适用于每个不同的客户).
我在预建事件中尝试了这个解决方案:http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx
但这是一个非常有用的帖子,我想知道VS2012是否有更实际的内容
您所讨论的这个功能(在 web.config 的情况下)称为 Xml 转换。不幸的是,Visual Studio 只支持自动转换 web.config 文件,没有其他功能。
SlowCheetah是为了转换您选择的其他 xml 文件而创建的,但它仅适用于 Xml 文件。例如,您可以将其配置为在每个构建上转换文件(通过自定义 msbuild 任务)。
但我不知道有任何转换 javascript 文件的解决方案。
编辑:
也许您可以构建自己的HttpHandler类来服务定制的 js 文件?页面上js文件的链接会指向它,它会为每个客户提供不同的js文件,切换逻辑将在服务器中。
我仍然觉得这是一个糟糕的解决方案(但由于 Web 表单,我可能有偏见),理想情况下您会生成已设置此信息的页面,也就是说,配置可以位于 web.config 文件中,例如,服务器端的控制器可以使用这些设置来个性化页面。
编辑2:
好的。根据最后的评论,我现在明白这是静态配置,即它是特定于部署的,并且不会根据同一网站上的用户进行更改。考虑到这一点,我觉得这不应该是构建过程的一部分,而应该是部署的一部分。
我会认真考虑使用部署工具来根据目标环境自定义文件。Microsoft 自己的发布管理可以使用内置的工作流活动相对轻松地实现这一点。在发布管道中,您可以根据传递给工作流程的任何参数选择所需的 javascript 文件。
| 归档时间: |
|
| 查看次数: |
1512 次 |
| 最近记录: |