C# 通过ILMerge合并WCF引用
我在Visual Studio 2017中有一个WinForm项目,其中我从服务的wsdl文件创建了一个WCF端点引用。 我的项目还使用了几个第三方DLL 我希望我的项目是一个独立的exe文件,不需要安装,所以我使用ILMerge将我的dll文件打包成一个exe文件 运行Compressed exe时,我遇到了有关缺少对WCF项目终结点的引用的异常: 在ServiceModel客户端配置节中找不到引用约定的默认终结点元素 我试图通过ILMerge查找如何添加WCF引用,但找不到任何相关内容。 我在项目的bin输出文件夹中也找不到任何与WCF相关的内容 我当前通过cmd使用ILMerge:C# 通过ILMerge合并WCF引用,c#,.net,visual-studio,wcf,ilmerge,C#,.net,Visual Studio,Wcf,Ilmerge,我在Visual Studio 2017中有一个WinForm项目,其中我从服务的wsdl文件创建了一个WCF端点引用。 我的项目还使用了几个第三方DLL 我希望我的项目是一个独立的exe文件,不需要安装,所以我使用ILMerge将我的dll文件打包成一个exe文件 运行Compressed exe时,我遇到了有关缺少对WCF项目终结点的引用的异常: 在ServiceModel客户端配置节中找不到引用约定的默认终结点元素 我试图通过ILMerge查找如何添加WCF引用,但找不到任何相关内容。 我
ILMerge.exe /t:winexe /out:target.exe /targetplatform:v4,<.net v4 path> output.exe dll1.dll ... dlln.dll
现在,在使用ILMerge时,所有内容都已打包。通过添加服务引用,在配置文件中还生成了一些额外的配置。因此,可能导致项目包装失败。或者,我们手动将
System.servicemodel
部分复制到新项目中。
我建议你改变使用这项服务的方式。您的项目似乎通过添加服务引用来调用服务。这将带来一些其他类库和引用,这导致项目很难打包。请考虑以下方式拨打服务。
它完全封装了主项目中所需的类库。
如果有什么我可以帮忙的,请随时告诉我。我没有听你的话,因为我对System.servicemodel为我生成类和解析器感到满意,但你对额外配置的评论将我推向了正确的方向。谢谢
BasicHttpBinding myBinding = new BasicHttpBinding();
myBinding.Security.Mode = BasicHttpSecurityMode.Transport;
EndpointAddress myEndpoint = new EndpointAddress(SERVICE_URL);
SoapServiceClient client = new SoapServiceClient(myBinding, myEndpoint);