使用SvcUtil.exe / reference引用文件夹中的所有dll

时间:2014-01-30 01:51:19

标签: .net svcutil.exe

我们有一堆第三方dll,它们有我们想要使用的数据交换。现在我们通过分别为每个dll指定/ reference来使用svcutil.exe生成代理。这非常乏味。有没有办法用外卡符号指定所有dll。

1 个答案:

答案 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