【问题标题】:Is there a slick way to deploy my silverlight app and change settings programmatically?有没有一种巧妙的方式来部署我的 silverlight 应用程序并以编程方式更改设置?
【发布时间】:2012-04-10 16:08:22
【问题描述】:

我对 Web 开发还很陌生。我正处于部署点(用于测试)。我有几个地方(可能是 4 个地方)我必须添加一个与应用程序无关的 URI。所以现在,在部署时,这些都需要改变。

有没有一种巧妙的方法来处理这个问题?光滑我的意思是不要手动浏览应用程序并更改 URI 或一揽子查找和替换(太冒险了)。我现在只有 4 个地方要更改,但这很容易更改并导致部署问题。

我正在使用 Microsoft 技术堆栈。 Silverlight、ASP.NET、RIA 等。开发在 Visual Studio 2010 中完成。

我注意到 web 项目对 web.config 进行了漂亮的转换......这很好。 Silverlight资源是否有等效机制?还有其他方法吗?

有什么想法吗?

【问题讨论】:

    标签: c# asp.net silverlight visual-studio-2010 deployment


    【解决方案1】:

    我刚刚发现this post on stack overflow 关于使用 MS 的内置转换机制进行服务引用。但实际上……它对于任何 XML 文件都是通用的。这意味着我能够将相同的概念应用到包含一些设置的自定义 XML 文件中……而且效果非常好。

    查看 Randoms 解决方案。这不是选择的解决方案,但它比我见过的任何其他解决方案都要好。

    【讨论】:

      【解决方案2】:

      一种方法是从托管网页将参数传递给 Silverlight 应用程序。

      <object ....>
      ... 
      <param name="initParams" value="prm1=http://google.com,prm2=http://bing.com" />
      ...
      </object>
      

      并从您的 Silverlight 应用程序访问(App.xaml.csApplication_Startup 方法):

      foreach (var item in e.Initparams)
      {
        this.Resources.Add(item.Key, item.Value);
      }
      

      访问参数:

      var prm1 = App.Current.Resources["prm1"].ToString();
      

      【讨论】:

        【解决方案3】:

        它不是太漂亮,但您可以检查 DEBUG 定义(默认在调试模式构建中定义):

        #if (DEBUG)
            myUrl = "http://www.google.com";
        #else
            myUrl = "http://www.bing.com";
        #endif
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-03-22
          • 2018-02-28
          • 1970-01-01
          • 1970-01-01
          • 2010-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多