[英]Visual Studio: how to add nuget packages as references when doing “Restore NuGet packages”
[英]NuGet packages: how to add references to webservices?
我正在創建一個NuGet包,我想在其中使用兩個Web服務。
我首先手動添加服務文件並修改配置文件。 但是當我瀏覽文件並更正引用時,我明白這種方法效率不高,特別是如果以后我需要更新web服務和引用。 我用谷歌搜索解決方案,但幾乎找不到任何有用的東西。
因此,我的問題是,將Web服務的引用添加到NuGet包中的正確方法是什么?
謝謝。
我選擇的方法是使用svcutil為Web服務生成代理類。 然后我能夠使用此代理類來訪問webservice,或者更進一步並基於它創建dll並在目標項目中引用此dll。
如果它對某人有用,這里是powershell代碼,它基於webservice url創建代理類和dll:
$className = "SomeClass";
$svcUri = "http://.../SomeWebService.svc?wsdl";
$csFile = $className + '.cs';
$dllName = [System.IO.Path]::Combine($temp, $className + ".dll")
$svcUtilresult = & svcutil.exe /noConfig /out:$csFile $svcUri
csc.exe /t:library /out:$dllName $csFile
您可以使用wsdl.exe。 如果您安裝了Visual Studio,那么您應該可以在此處找到它:C:\\ Program Files(x86)\\ Microsoft SDKs \\ Windows \\ v7.0A \\ Bin或類似路徑,具體取決於您的精確版本。
微軟文檔非常簡單https://msdn.microsoft.com/en-us/library/7h3ystb6%28VS.80%29.aspx 。
我發現這對asmx Web服務更有效,因為它生成的靜態類與使用Visual Studio中的添加Web服務/更新Web服務功能生成的類精確匹配。 您需要做的就是將工具生成的.cs文件添加到項目中並刪除Web引用。 您可能需要更新對新命名空間的using
引用,但這就是全部。
svcutil.exe生成的靜態類更適合WCF服務,如果需要從命令行查找,該工具位於同一目錄中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.