是否有一种灵活的方式来部署我的silverlight应用程序并以编程方式更改设置?

时间:2012-04-10 16:08:22

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

我是网络开发的新手。我正处于部署阶段(用于测试)。我有几个地方(可能是4个地方),我必须在应用程序中添加一个非相对的URI。所以现在,在部署时,需要对其进行更改。

有没有一种灵活的处理方式?通过光滑我的意思是不手动通过应用程序并更改URI或一揽子查找和替换(风险太大)。我现在只有4个地方需要更改,但这很容易改变并导致部署问题。

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

我注意到web项目对web.config有一个很好的转换......这很好。 Silverlight资源是否有相同的机制?还有其他方法吗?

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

一种方法是从托管网页将参数传递给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();

答案 1 :(得分:1)

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

请参阅Randoms解决方案。这不是所选择的解决方案,但它比我见过的任何其他解决方案都要好得多。

答案 2 :(得分:0)

它不太漂亮,但您可以检查DEBUG定义(默认情况下在调试模式下定义):

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