【发布时间】:2014-06-08 07:57:30
【问题描述】:
我有一个项目需要为许多不同的客户进行测试和部署,而这些客户有时有不同的需求。 它是一个 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
【问题讨论】:
-
您能否详细说明为什么需要不同的 js 文件开始?它们包含什么?与环境相关的配置设置通常位于 .config 文件中,该文件可以使用 Xml Transform 轻松转换。
-
它们是客户端代码(javascript)的配置设置,我希望以结构化的方式拥有它们,这就是我使用 javascript 对象或 json 数据文件的原因。一个 .config 可能会这样做,但你如何将它转移到你的 javascript 变量中?
-
我在问题中添加了更多信息。
-
您是否考虑过不在 javascript 文件中使用配置,而是在 MVC 生成页面时构建这些客户特定的东西?这样,您可以保留客户端配置服务器端,但适当地生成页面。就个人而言,这就是我要做的,我觉得服务器端生成页面的目的之一是能够应用自定义行为,在你的情况下取决于用户/客户/等。
-
我对此进行了很多思考,但是我有很多配置变量,而且很多都需要是 javascript 变量,因为这些变量被 javascript 库(如 highchart、knockout 等)使用。 .net 不允许在 .js 文件中使用 mvc 代码。
标签: visual-studio visual-studio-2012 configurationmanager