2013-12-09 61 views
10

私はVS 2012(Framework 4.5)のWindowsフォームで作成されたWindowsアプリケーション(C#)で作業しています。要件は、Windowsの古いバージョンに使用する必要があるので、私はターゲットフレームワークを.NET Framework 4に設定し、プラットフォームのターゲットをx86に設定しています。そのが行われ、私は次のエラーを取得するコンパイルしようとしたら:カスタムツールエラー:ファイルの生成に失敗しました

Custom tool error: Failed to generate file: The service reference is not valid for the current .NET Framework version or project type. You can change the service reference configuration in the .svcmap

私は、フレームワーク4が、運に反転する前に、サービス参照のボックスのチェックを外す「Reuse types in referenced assemblies」を試してみました。

答えて

17

明らかに、このエラーは単純にre-adding the referenceで回避できます。あなたはそれを試しましたか?

+0

それはそれを働かせました、ありがとう! – Danno

14

参照を再追加する代わりに、.NET 4.0で認識されないコードをService References\<reference name>\Reference.svcmapファイルから削除することもできます。エクスプローラ経由でこのファイルに移動する必要がありますが、Visual Studioには表示されません。私の参考文献として、この行を削除するだけです。

<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod> 

VS2013のサービス参照を右クリックして、「Update Service reference」をクリックしてください。サービスを再スキャンし、.NET 4.0と互換性があるようにReference.csファイルを生成します。

+0

ありがとうございました。私は、サービスがオーナーによってオフラインになったためサービスを更新できない状況がありました。HTTPSと双方向SSLハンドシェイクを使用していた唯一のバージョンのサービスはまだありませんでした。 Visual StudioがそこからWSDLファイルを取得できるようにします)。だから私は手動で.svcmapを編集しましたが、手動でReference.csを作成しなければなりませんでした.Vasによって(おそらくVSによって)切り捨てられました。幸いにも私たちはプロジェクトのバックアップを取ってReference.csをそこから取り出し、すべてを再建し、すべてが再び働いた。 –

+0

私が最初に思ったことは、サービス参照を再追加することでした。私は単純な解決策があることを知っていたので検索することにしました。ありがとう! – Luty

関連する問題