2017-02-06 54 views
1

我從客戶端引用WCF服務,並且數據協定位於同一解決方案中的程序集中。WCF服務引用重用程序集引用問題

當我添加服務引用時,它正確地重新使用了項目程序集,但它也爲同一程序集添加了一個額外的引用,除了此路徑指向客戶端項目bin \ Debug輸出文件夾。

問題是,當代碼被推送到git時,除非這個無效的引用被移除,否則它會中斷其他開發者的構建。

我已經添加了項目引用並指示svcutil重新使用該引用,爲什麼後添加它自己?每次我更新參考時都會發生這種情況。

有什麼不對嗎,或者這只是它的工作原理?我已經嘗試了「在所有引用的程序集中重用類型」和「在指定的引用程序集中重用類型」。

+0

其實都是。是的,有什麼不對,是的,這是它的工作原理。 –

回答

0

經過數小時的試圖弄清楚發生了什麼,我終於設法讓一切都正確。

我認爲這是發生的原因是因爲我引用並希望重新使用的程序集有錯誤的「Assembly Name」屬性。

我不認爲這實際上會導致問題,但我注意到,當添加項目引用時,它將顯示爲「XYZ」,但是當從程序集列表中選擇它以在服務中重新使用時參考對話框,它會顯示爲「My.Namespace.XYZ」,因此它有不同的名稱。

我打開了程序集的屬性對話框,並且「程序集名稱」的值是「My.Namespace.XYZ」而不是「XYZ」,所以我改變了它,並留下了「Default Namespace」是(My.Namespace.XYZ)。

然後我清理解決方案,從客戶端項目(bin,obj,服務引用,數據源等)中刪除所有額外的剩餘文件和文件夾,並添加了服務引用,這次沒有額外的引用添加和一切都去正確的地方。