VS可以在发布时更改js中的变量值吗

Can VS change variable values in my js on publish

本文关键字:js 变量值 布时更 VS      更新时间:2023-09-26

我运行VS2010WebDeveloper,并将一个javascript变量设置为一个值进行测试。当我发布我的作品时,我认为变量应该是影响最终行为的另一个值。因此,在rumpa.js文件中,我有以下内容。

$(document).ready(function () {
  var iable = "test value";
  ...}

然而,就在我执行发布之前,我手动编辑该行,使其看起来如下。

$(document).ready(function () {
  var iable = "publish value";
  ...}

它工作得很好,只是我经常忘记将iable更改为"publish value",直到一个不满意的客户打来电话。这不是最佳的开发技术。

我能以某种方式让VS更改我的源代码吗?

您可以使用配置转换文件。这样,您可以为每个发布配置文件设置不同的设置。更多信息可以在这里找到:http://blog.hmobius.com/post/2010/02/17/ASPNET-40-Part-4-Config-Transformation-Files.aspx

Rob Angelier的答案中引用的链接对我不起作用。由于我今天在寻找相同的问题,我发现你可以使用#DEBUG:

#if DEBUG
    var iable = "test value";
#else
    var iable = "publish value";
#endif

然而,我有时需要将调试构建发布到服务器,而这种方法不允许这样做。因此,您可以检查服务器名称:

var iable;
if (window.location.hostname=="localhost")
{
    var iable = "test value";
} else
{
    var iable = "publish value";
}

或者在Angular中,我使用的服务是:

(function () {
    "use strict";
    angular
        .module("common.services", ["ngResource"])
        .constant("appSettings",
        {
            commonsetting: false,
        });
    if (window.location.hostname=="localhost")
    {
        // local dev settings
        angular
            .module("common.services", ["ngResource"])
            .constant("appSettings",
            {
                iable = "test value";
            });
    } else
    {
        // remote settings
        angular
            .module("common.services", ["ngResource"])
            .constant("appSettings",
            {
                var iable = "publish value";
            });
    }
}());

希望这能为某人节省一些时间。