我试图使用svcutil.exe来创建代理类。代理应该在.dll中,以便我可以添加引用'库到另一个项目并使用它。以下是我目前的代码。
ProcessStartInfo start = new ProcessStartInfo();
start.Arguments = "/out:C:\\Temp\\myProxyClass.cs http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
start.FileName = "C:\\Temp\\SvcUtil.lnk";
start.WindowStyle = ProcessWindowStyle.Hidden;
start.CreateNoWindow = true;
using (Process proc = Process.Start(start))
{
proc.WaitForExit();
}
ProcessStartInfo start1 = new ProcessStartInfo();
start1.Arguments = "/target:library /out:C:\\Temp\\XXX.dll C:\\Temp\\myProxyClass.cs";
start1.FileName = "C:\\Temp\\csc.lnk";
start1.WindowStyle = ProcessWindowStyle.Hidden;
start1.CreateNoWindow = true;
using (Process proc1 = Process.Start(start1))
{
proc1.WaitForExit();
}
如上所示,我首先使用svcutil.exe生成cs文件,然后使用csc.exe将其编译为dll。当我在另一个项目中添加它作为参考并尝试运行它时,我收到了一个错误。
错误1类型' System.ServiceModel.ClientBase`1'在未引用的程序集中定义。您必须添加对程序集的引用,System.ServiceModel,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。 C:\ Users \ ABC \ My Work \ AA-Private \ Test \ Test \ Program.cs 13 13测试
答案 0 :(得分:0)
错误消息告诉您需要执行的操作。要添加代理dll的项目也必须在其中引用System.ServiceModel。