我从客户端引用了WCF服务,数据协定位于同一解决方案中的程序集中。
当我添加服务引用时,它正确地重新使用项目程序集,但它还添加了对同一程序集的额外引用,除了这个路径指向客户端项目bin \ Debug输出文件夹。
问题是,当代码被推送到git时,它会破坏其他开发人员的构建,除非删除此无效引用。
我已经添加了项目引用并指示svcutil重用该引用,为什么之后添加自己的引用?每次更新引用时都会发生这种情况。
有什么不对或者这是怎么回事?我已经尝试过两种"在所有引用的程序集中重用类型"和"重复使用指定参考装配中的类型"。
答案 0 :(得分:0)
经过几个小时的努力弄清楚发生了什么,我终于成功地把事情做好了。
我认为发生这种情况的原因是因为我正在引用并希望重新使用的程序集具有错误的“程序集名称”属性。
我不认为这实际上会导致问题,但我注意到在添加项目引用时,它会显示为“XYZ”,但是当从程序集列表中选择它以在服务引用中重用时对话,它将显示为“My.Namespace.XYZ”,因此它有一个不同的名称。
我打开了程序集的属性对话框,“程序集名称”的值是“My.Namespace.XYZ”,而不仅仅是“XYZ”,所以我更改了它,并保留了“默认命名空间”,因为它是(My.Namespace.XYZ)。
然后我清理了解决方案,从客户端项目中删除了所有额外的剩余文件和文件夹(bin,obj,服务引用,数据源等)并添加了服务引用,这次没有添加额外的引用一切都到了正确的地方。
<强>更新强>
由于我的同事,我最近了解到,使用构建配置x64添加/更新服务引用不适用于重用程序集功能。我不得不切换到AnyCPU,更新我的服务引用,然后切换回x64。希望这有助于任何人在谷歌这里游荡......