2008-09-19 69 views
0

是否有任何工具,甚至是用于部署依赖这些服务的Web服务和Silverlight应用程序的良好流程,并且能够自动更改Web服务URL和端口号自动配置文件?带有Web服务的Silverlight XAP部署的自动化工具

现在我总是发现自己必须更改服务器上的Web服务配置,然后还必须编辑XAP中的配置。在向多个服务器(测试,销售,演示,制作等)部署小型迭代时,这是一件很痛苦的事情。我知道我可以编写自定义代码,但如果可以的话,我想避免这种情况。

特别痛苦忘记做一个改变,以后从测试人员打电话。

回答

1

虽然听起来你有一个非常普遍的需求,那就是一个部署工具,实际上你通常会发现你最好自己制作工具。例如,第一个版本可能会在您指定的配置文件上进行简单的字符串替换。

然后,您可以将其作为后期构建过程或作为MSBuild脚本中的操作包含在内。

皮肤猫有很多种方法,例如通过DSL工具建模语言为您的部署场景建模,该工具建模语言可用于代码生成所有服务配置。

所以我的快速回答是:我不认为有任何工具明确地满足您的需要。

0

我认为能为此提出一个基于社区的工具会很好。

最后在我工作的地方,我们创建了一个工具,它参加了所需的参数,并验证它们部署它们,但它是非常具体的,我们正在创造的产品。

1

如果你想要将Silverlight集成到您的构建过程中,你需要了解凯龙星:

默认位置:C:\ Program Files文件(x86)的\微软的SDK \ Silverlight的\ 2.0 \工具\凯龙

Chiron.exe将项目输出转换为.XAP文件。使用Chiron,您可以将XAP文件创建集成到您的自动构建中,并针对您的每个环境使用不同的配置文件。

0

这就是我们在ComponentOne中使用的(Studio for Silverlight)。这是一个简单的方法:

public static Uri GetAbsoluteUri(string uriString) 
{ 
    // Convert relative into absolute 
    if (!uriString.StartsWith("http://", StringComparison.OrdinalIgnoreCase)) 
    { 
     // Remove leading slashes 
     if (uriString.StartsWith("/")) 
     { 
      uriString = uriString.Substring(1); 
     } 

     // Get current absolute URI; this depends on where the application is deployed 
     Uri uri = System.Windows.Browser.HtmlPage.Document.DocumentUri; 
     string uriBase = uri.AbsoluteUri.Split('#')[0]; 

     // Replace page name with relative URI 
     int ls = uriBase.LastIndexOf('/'); 
     uriString = uriBase.Substring(0, ls + 1) + uriString; 
    } 

    // Return new URI 
    return new Uri(uriString, UriKind.Absolute); 
} 

然后,你只需要使用你的Web服务的相对名称来调用它,得到的绝对路径:

var uri = GetAbsoluteUri("myWebService.asmx") 
1

对于我们的项目之一,我们有一个与我们的ServiceReferences文件类似的问题。我们的解决方案是定义几个ServiceReferences,并为每个构建配置使用.config。例如。 ServiceReferences.ClientConfig.QaDeploy, ServiceReferences.ClientConfig.Debug, etc

产生的XAP然后有一个生成后事件到相应的配置文件复制到输出位置的项目:

复制“$(PROJECTDIR)servicereferences.clientconfig。$(ConfigurationName)” “$(PROJECTDIR)servicereferences.clientconfig”/ Y

如果你有一组固定部署到服务器,这可以很容易地用于web.configs了。

1

我已经把一个小的应用程序,可以进行文件的代入命令行一个XAP文件,这可能证明是有用的为你改变配置文件针对不同的环境

它可以在这里找到:https://github.com/peterbailey/XapFileInjector