2017-02-06 53 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,服务引用,数据源等)中删除所有额外的剩余文件和文件夹,并添加了服务引用,这次没有额外的引用添加和一切都去正确的地方。