是否有任何工具,甚至是用于部署依赖这些服务的Web服务和Silverlight应用程序的良好流程,并且能够自动更改Web服务URL和端口号自动配置文件?带有Web服务的Silverlight XAP部署的自动化工具
现在我总是发现自己必须更改服务器上的Web服务配置,然后还必须编辑XAP中的配置。在向多个服务器(测试,销售,演示,制作等)部署小型迭代时,这是一件很痛苦的事情。我知道我可以编写自定义代码,但如果可以的话,我想避免这种情况。
特别痛苦忘记做一个改变,以后从测试人员打电话。
是否有任何工具,甚至是用于部署依赖这些服务的Web服务和Silverlight应用程序的良好流程,并且能够自动更改Web服务URL和端口号自动配置文件?带有Web服务的Silverlight XAP部署的自动化工具
现在我总是发现自己必须更改服务器上的Web服务配置,然后还必须编辑XAP中的配置。在向多个服务器(测试,销售,演示,制作等)部署小型迭代时,这是一件很痛苦的事情。我知道我可以编写自定义代码,但如果可以的话,我想避免这种情况。
特别痛苦忘记做一个改变,以后从测试人员打电话。
我认为能为此提出一个基于社区的工具会很好。
最后在我工作的地方,我们创建了一个工具,它参加了所需的参数,并验证它们也部署它们,但它是非常具体的,我们正在创造的产品。
如果你想要将Silverlight集成到您的构建过程中,你需要了解凯龙星:
默认位置:C:\ Program Files文件(x86)的\微软的SDK \ Silverlight的\ 2.0 \工具\凯龙
Chiron.exe将项目输出转换为.XAP文件。使用Chiron,您可以将XAP文件创建集成到您的自动构建中,并针对您的每个环境使用不同的配置文件。
这就是我们在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")
对于我们的项目之一,我们有一个与我们的ServiceReferences文件类似的问题。我们的解决方案是定义几个ServiceReferences,并为每个构建配置使用.config。例如。 ServiceReferences.ClientConfig.QaDeploy, ServiceReferences.ClientConfig.Debug, etc
。
产生的XAP然后有一个生成后事件到相应的配置文件复制到输出位置的项目:
复制“$(PROJECTDIR)servicereferences.clientconfig。$(ConfigurationName)” “$(PROJECTDIR)servicereferences.clientconfig”/ Y
如果你有一组固定部署到服务器,这可以很容易地用于web.configs了。
我已经把一个小的应用程序,可以进行文件的代入命令行一个XAP文件,这可能证明是有用的为你改变配置文件针对不同的环境