7

MVC4VS2012を使用していますが、Service Referenceを使用しています。Reference.csファイルを自動生成します。私はビルドすると、私はServiceReference .csファイルのXml警告を抑制します。

読んエラーとして警告の数十取得「公に目に見える型またはメンバーのために不足しているXMLコメントを...」私が参照する同様の答えhereを、発見した

<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="XamlMarkupCompilePass1"> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do echo #pragma warning disable > %%f.temp" /> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do type %%f >> %%f.temp" /> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do copy /y %%f.temp %%f" /> 
    <Message Text="XamlGeneratedCodeWarningRemoved: @(XamlGeneratedCodeFiles)" /> 
    </Target> 

しかし、これはおそらくので、Reference.csファイルで動作するようには思えません。この問題を回避するには、CSProjファイルに次の修正を加えることを示唆している、このblogで見つかりましたXamlをターゲティングしていますか?誰も私がReference.csファイルで動作するようにこれを修正する方法、またはこの問題を回避する別の方法を提案する人はいませんか?

pragma disableを自動生成コードに追加するか、Xmlのコメントを無効にすることはできません。

答えて

6

事前に生成された.csファイルをオンザフライで更新すると、cause all sorts of issues with Visual Studio, since it will use the in-memory copy of the filesになります。また、ソース管理の統合により、ファイルを読み取り専用にし、ビルドごとにファイルをチェックインする必要があるため、非常に苛立つでしょう。

また、サービスクライアントをプロパティを調整することで内部的にすることもできます。設定に応じて、ドキュメント生成は外部からは見えないメソッドについては不平を言うことはありません。これはまだStyleCop、コード解析、またはResharperの警告を引き起こす可能性があります。

私は通常、自分のVisual StudioプロジェクトにService Referencesを貼り付け、生成されたコードをPublicにして、全体のプロジェクト。また、これはあなたのサービスの参照にかかわらず、あなたがそれを含めるプロジェクトの同じバインディングを使用する利点がある。

+0

良いアイデアジェシー、これを試してみましょう。しかし、確かに、独自のプロジェクトにサービス参照を移動するよりも、これを解決するためのより良い方法がありますか?私はCSProjファイルやMSBuildについてよく分かりませんが、リンク先のページを読んだあと、私の質問と同様の例を使ってプレビルドをターゲットにできるのだろうかと思います。 – DevDave

+1

はい、そうかもしれませんが、結果としてソース管理の統合が進んでいます。すべてのビルドでは、保留中の変更が多数発生します。コードをインテリジェントにして、ファイルを再更新しないようにすることもできます。これはうまくいくはずです。私はこれを好みますが、設定がはるかに簡単で、関係するすべてのプロジェクトメンバーの理解が容易です。 – jessehouwing

+0

あなたの答えをありがとう。私は別の質問をする必要があるかもしれませんが、あなたは同じGenerateDコードでStyleCopの警告をどのように回避するのだろうか?私はこの問題を解決することを楽しみにしています! – DevDave

1

私も、私はXml要約問題を回避している、作成時にInternalとしてService Referenceを設定できることがわかりました。

これは、まだ生成されたコードのエラーStyleCopを抑制する問題を残していますが、私はこれに対して新しい質問を作成します。

+1

脚注:サービス参照が内部であっても、生成されたイベントはパブリックとしてマークされるため、これは機能しない可能性があります。 –

関連する問題