是否有任何工具,甚至是用於部署依賴這些服務的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文件,這可能證明是有用的爲你改變配置文件針對不同的環境