2011-06-08 27 views
1

我有一個解決方案,包含多個Silverlight 4.0應用程序,這些應用程序都通過通用的Silverlight 4.0程序集引用相同的WCF服務。這就是每個Silverlight UserControl應用程序在解決方案中引用一個名爲「ServiceClient」的Silverlight程序集,以獲取它們的通用OperationContract信息。這些UserControl應用程序引用該程序集。在VS2010中更新我的服務引用會導致我在TFS中添加很多文件掛起更改

當我更改WCF服務時,我必須更新「ServiceClient」程序集。這會導致大量* .datasource文件和ServiceName.xsd,ServiceNameN.wsdl,ServiceNameN.disco(其中N是任意整數)。所有這些文件都列爲TFS中的未決更改。然後我必須小心地撤消數百個特定的待處理更改。有沒有辦法限制文件的生成,或至少抑制其顯示爲待處理的更改?

回答

0

如果你沒有「撤消」掛起更改和簽入,會發生什麼?

如果文件被簽入然後他們發生了變化。這不正是你想要的嗎?

我有時會看到VS/TFS將文件設置爲掛起簽入,但是當我執行簽入操作時,文件列表被清除並且文件沒有簽入(因爲文件中沒有任何更改)

也許你正在努力解決一個非問題。

+0

其實我可能一直在想這個錯誤的方式。我的ServiceClient程序集的服務引用在解決方案資源管理器中顯示爲一個簽出的對象。我右鍵單擊它並將其簽入。所有關聯的待處理更改都使用它簽入。這比我想的要簡單。有了大量的開發人員工作區,每個人都必須偶爾執行此操作。我想這不是一個真正的問題。我發現另一個鏈接分享你的意見http://stackoverflow.com/questions/1867285/which-files-under-service-references-belong-in-source-control-visual-studio – Blanthor 2011-06-10 13:31:52

0

不清楚爲什麼在服務引用更新後撤消自動生成的更改。當您購買作爲行李組成部分的VS服務參考方法時。

如果您想更多地控制客戶端生成過程,您可以使用use the SvcUtil command line實用程序。如果您想要模仿「添加服務引用」方法,則必須將構建任務添加到項目才能執行此操作。我建議使用一個單獨的項目連接使用SvcUtil來生成所有其他項目都會引用的客戶端程序集。您仍然需要將WCF配置文件添加到引用您的客戶端程序集的每個項目。

+0

我確實有這個單一的項目連線使用SvcUtil。我在上面稱它爲「ServiceClient」。但是我得到ServiceName1.wsdl,ServiceName2.wsdl等添加在掛起的更改。每個引用「ServiceClient」的項目都會得到一個包含* .datasource文件的包。也許我生成的太頻繁。 – Blanthor 2011-06-08 16:08:42

+0

是的,這些都是Visual Studio內置服務處理內容的一部分。我認爲那些文件能夠對DataContract對象進行數據綁定。如果您不打算使用數據綁定功能,則手動構建服務代理是刪除這些文件的一種方法。我很久沒有使用過TFS,但我相信你可以配置它忽略某些文件類型和文件夾。 – 2011-06-08 17:11:19

+0

我錯了* .datasource文件的創建位置。它們都存在於保存ServiceClient程序集中的服務引用的文件夾中。 – Blanthor 2011-06-10 13:35:32

0

您可以在tfs中引用庫中的服務合約,然後使用合約爲您的wcf服務創建一個通道。這也意味着您不必再使用服務引用,也可以將Silverlight應用程序從您的服務中分離出來。

相關問題