2

svcutil を使用して WCF サービスのメタデータをダウンロードしようとしていますが、/directory:<> パラメーターで問題が発生しています。保存したいディレクトリにスペースが含まれています:

C:\Service References\Logging

/t:metadata を実行すると、次のエラーが表示されます。

エラー: ディレクトリ 'C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\References\Logging' が見つかりませんでした。ディレクトリが存在し、それを読み取るための適切な権限があることを確認してください。

「Service References」のスペースが問題を引き起こしているようです。コマンド シェル (ごくわずか) についての私の理解では、スペースは実行可能ファイルの区切り記号として機能します。そこで人参を持って空間を脱出してみた

サービス^ リファレンス

パスを二重引用符で囲みます

「C:\Service References\Logging」

しかし、 /directory: パラメーターはそれらを値の有効な文字として認識しないため、どちらも機能していないようです。これとsvcutilに関しては方向性が見つからず、今途方に暮れています。

ファイルを一時フォルダーにダウンロードしてから移動することもできますが、その方法は使用したくありません。

これを解決するための指示をいただければ幸いです。前もって感謝します。

-- 編集 -- これは実行しようとしている完全なコマンドです。自分で試す場合は、独自の WCF 参照を追加する必要があります。これは内部 IP アドレス上にあるためです。

svcutil /t:metadata http://dev.taskservices.noelnet.com/LoggingService/LoggingService.svc /d:C:\Service References\Logging\

4

1 に答える 1

1

According to the documentation for svcutil

/directory: - Directory to create files in (default: current directory) (Short Form: /d)

Since the default is to use the current directory, let us change the current directory for the command.

pushd "C:\Service References\Logging\"
svcutil /t:metadata http://dev.taskservices.noelnet.com/LoggingService/LoggingService.svc
popd

If you do not need to revert back to the original directory you can just use cd "C:\Service References\Logging\".

Note, in order for this to work, svcutil must be called using its entire path or have its path listed in the PATH environment variable. This is what I mean by calling using its entire path:

cd "C:\Service References\Logging\"
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\svcutil.exe" /t:metadata http://dev.taskservices.noelnet.com/LoggingService/LoggingService.svc
于 2012-12-13T21:36:03.013 に答える