8

するとAdd Service Reference、Visual Studio は以下のように xsd ファイルを作成します。

  1. MyService1.xsd
  2. MyService2.xsd
  3. MyService3.xsd

wsdl および .svcmap ファイルと共に。

その後の更新では、上記のファイルを更新するのではなく、Update Service Refernce VS 2010 を使用して、ファイル名を追加してファイルを追加し続けます。

  1. MyService31.xsd
  2. MyService32.xsd
  3. MyService33.xsd ....

これにより、継続的インテグレーション環境でのファイルのチェックインとスケジュールされたビルドが失敗するときに問題が発生します。:-( コーディング側に間違いはありません。

このシナリオをどのように処理しますか? Visual Studio既存のファイルを強制的に更新することはできますか?

4

2 に答える 2

0

サービス参照を更新する前に、自動生成されたファイルをチェックアウトして、VSがそれらのファイルにアクセスできるようにします。ファイルがロックされているため、VisualStudioでファイルを変更できないと思います。これはあなたが見ているものになります。

于 2013-03-20T12:19:06.647 に答える
0

私は、メタデータ (wsdl+xsd) の生成とプロキシ コードの生成の両方に svcutil を使用することを好みます。

「舞台裏の魔法」が起こらないのは良いことです。あなたはあらゆる側面を見てコントロールします。

  • サービスの WSDL+XSD を取得するための cmd ファイルを作成します。サービス インターフェイスが変更されるたびに、cmd を実行します。結果の wsdl および xsd ファイルを、他の外部依存関係 (サード パーティの dll など) の場合と同様に、ソース管理に追加します。Svcutil は、URL からメタデータを取得したり、サービスを実装するアセンブリもある場合は .net dll からメタデータを抽出したりできます。

  • プロキシ コードを (再) 生成するための cmd ファイルを作成します。サービスのメタデータが変更されるたびに実行します。結果の .cs ファイルをプロジェクトに追加します。

cmd ファイルは次のようになります。名前空間のマッピング、シリアライザー、コレクションの使用法などを定義できます。svcutil のヘルプを確認してください。

svcutil.exe .\References\MyService\*.wsdl .\References\MyService\*.xsd /namespace:*,MyNamespace /out:.\Source\MySubfolders\MySeviceProxy.cs /serializer:DataContractSerializer /ct:System.Collections. Generic.List`1

于 2013-03-19T15:52:27.703 に答える