Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 不同的配置能否在visual studio中管理web.config以外的文件_Visual Studio_Visual Studio 2012_Configurationmanager - Fatal编程技术网

Visual studio 不同的配置能否在visual studio中管理web.config以外的文件

Visual studio 不同的配置能否在visual studio中管理web.config以外的文件,visual-studio,visual-studio-2012,configurationmanager,Visual Studio,Visual Studio 2012,Configurationmanager,我有一个项目需要为许多不同的客户进行测试和部署,这些客户有时有不同的需求。 这是一个MVVC应用程序,我使用.NETMVC,但只针对少数部分,如一些局部视图等,其他所有内容都是使用knockout.js的单页应用程序 所以我有不同的web.config文件,但也有一个包含客户端配置的文件,一个针对每个客户的.js文件 现在,如果使用configuration manager在visual studio中进行不同的配置,我会根据我选择的配置获得不同的web.config,这非常完美 但是,有没有一

我有一个项目需要为许多不同的客户进行测试和部署,这些客户有时有不同的需求。 这是一个MVVC应用程序,我使用.NETMVC,但只针对少数部分,如一些局部视图等,其他所有内容都是使用knockout.js的单页应用程序

所以我有不同的web.config文件,但也有一个包含客户端配置的文件,一个针对每个客户的.js文件

现在,如果使用configuration manager在visual studio中进行不同的配置,我会根据我选择的配置获得不同的web.config,这非常完美

但是,有没有一种方法可以让项目中的另一个文件获得相同的结果

例如,有一个myfile.nightly.js和myfile.debug.js等等。(这些文件包含适合每个不同客户的配置设置,如页面颜色、徽标或要隐藏的部分)

我用预构建事件尝试了此解决方案:


但这是一个很难解决的问题,我想知道VS2012是否有更实际的功能,例如

您正在谈论的这个功能(在web.config中)称为Xml转换。不幸的是,Visual Studio只支持自动转换web.config文件,而不支持其他任何功能

创建时用于转换您选择的其他xml文件,但它仅适用于xml文件。例如,您可以将其配置为转换每个生成上的文件(通过自定义msbuild任务)

不过,我不知道有任何转换javascript文件的解决方案

编辑:

也许您可以构建自己的
HttpHandler
类来服务定制的js文件?页面上js文件的链接将指向它,它将为每个客户提供不同的js文件,切换逻辑将在服务器中

我仍然觉得这是一个糟糕的解决方案(但我可能会因为Web表单而产生偏见),理想情况下,您可以使用已设置的信息生成页面,也就是说,例如,配置可以在Web.config文件中,服务器端的控制器可以使用这些设置对页面进行个性化设置。

编辑2:

嗯。根据最后的评论,我现在了解到这是静态配置,即,它是特定于部署的,并且不会因同一网站上的用户而改变。考虑到这一点,我觉得这不应该是构建过程的一部分,而是部署的一部分


<>我会认真考虑使用部署工具来定制基于目标环境的文件。微软自己也可以使用内置的工作流活动相对轻松地实现这一点。在发布管道中,您可以根据传递给工作流的任何参数选择所需的javascript文件。

您能否详细说明为什么需要不同的js文件作为开始?它们包含什么?配置设置依赖于环境,通常位于.config文件中,可以使用Xml转换轻松转换。它们是客户端代码(javascript)的配置设置,我希望以结构化的方式使用它们,这就是我使用javascript对象或json数据文件的原因。一个.config也许可以,但如何将其传输到javascript变量?我在qestion中添加了更多信息。您是否考虑过不在javascript文件中使用配置,而是在MVC生成页面时构建这些特定于客户的东西?这样,您可以在服务器端保留客户端配置,但可以适当地生成页面。就我个人而言,这就是我要做的,我觉得服务器端生成页面的目的之一是能够应用自定义行为,具体取决于用户/客户/等等。对此我考虑了很多,但我有很多配置变量,很多都需要是javascript变量,因为highchart之类的javascript库使用这些变量,淘汰赛等等。net不允许在.js文件中使用mvc代码。最后一个是一个很好的解决方案,解决了与我已经尝试过的问题不同的原始问题。@MaurizioIndenmark如果你能分享你如何“切换”这些js文件,这也会有所帮助。例如,如果这些是永久性的更改(对于站点的给定部署,js总是相同的),我将完全避免使用代码逻辑来获得它们。部署脚本/流程负责选择适当的文件。另一方面,如果在同一个站点实例上,您需要选择不同的文件,例如基于用户,那么您将始终需要使用切换代码路线。我尝试的解决方案是在链接中的原始问题中。是用预构建的event@MaurizioIndenmark编辑我的答案,请看一看。