プロジェクトが複数あるときに、各プロジェクトでサービス参照の追加を行うと同じコードが生成されて無駄になります。また、サービス参照の追加で生成されたサービスクライアントクラスを複数のプロジェクト間でやり取りすることができなくなります。
そこで、サービスクライアントクラスを配置するサービス参照プロジェクトを作成し、複数プロジェクトで共有する構成にします。このとき、ServiceReferences.ClientConfigファイルの配置方法が問題になります。
サービスコールが失敗する
メインプロジェクトの直下にServiceReferences.ClientConfigファイルが存在しない状態でサービスコールを行うと、InvalidOperationExceptionがスローされます。
{System.InvalidOperationException: .xap アプリケーション パッケージ内に 'ServiceReferences.ClientConfig' が見つかりません。このファイルは、Web サービスのクライアント プロキシを設定するために使用されます。このファイルにより、アプリケーションで必要なサービスを見つけることができます。このファイルをアプリケーション パッケージ内に含めるか、サービス アドレスおよびバインドを明示的に指定するクライアント プロキシ コンストラクターを使用するようにコードを変更してください。詳細については、内部例外を参照してください。
安易に解決する場合は、ServiceReferenceプロジェクトのServiceReferences.ClientConfigファイルをメインプロジェクトにコピーします。しかし、この方法では、ServiceReferences.ClientConfigファイルが更新されるたびにコピーし直す必要があります。