我们有一堆第三方dll,它们有我们想要使用的数据交换。现在我们通过分别为每个dll指定/ reference来使用svcutil.exe生成代理。这非常乏味。有没有办法用外卡符号指定所有dll。
答案 0 :(得分:1)
您可以使用PowerShell来实现这一目标:
$endpoint = 'http://endpoint.svc?wsdl'
$namespace = 'MyNamespace.Other'
$generatedClassPath = 'C:...MyClass.cs'
$librairiesDirectory = 'C:path-to-dlls'
$svcUtilArgs = @(
"/t:code"
"$endpoint"
"/n:`"*,$namespace`""
"/out:`"$generatedClassPath`""
"/noconfig")
$existingLibraries = Get-ChildItem -Path "$librairiesDirectory\*.dll"
foreach ($existingLibrary in $existingLibraries) {
$svcUtilArgs += "/r:`"$existingLibrary`""
}
$svcUtilResult = (Start-Process -PassThru -FilePath SvcUtil.exe -Wait -NoNewWindow -ArgumentList $svcUtilArgs)
注意:为此,您需要在路径中使用SvcUtil.exe,或者您需要在VS工具目录中调用vsvars32.bat
。