2

Visual Studioでビルドエラーが発生しましたが、意味がありません。

タイプまたは名前空間の名前「MyService」が名前空間「My.Project」に存在しません(アセンブリ参照がありませんか?)

名前空間MyServiceはWebリファレンスで定義されています。オブジェクトブラウザでは、その名前空間とその中で定義されているすべてのクラスをはっきりと見ることができます。Webリファレンスのどのコードにもコンパイルエラーはありません。

フレームワークターゲットを2.0から3.5に変更した後、コードのコンパイルが停止しました。コンパイラが窒息するのはなぜですか?これを修正するにはどうすればよいですか?すでにWebリファレンスを更新しようとしましたが、問題は解決していません。生成された「Reference.cs」のコードをコメントアウトして、プロジェクト内の別のコードファイルにコードをコピーしようとしましたが、名前空間はまだ表示されませんでした。

私のプロジェクトは以下を参照しています:

システム2.0.0.0
System.Data 2.0.0.0
System.EnterpriseServices 2.0.0.0
System.Net 3.5.0.0
System.Web.Services 2.0.0.0
System.Xml 2.0.0.0

アップデート

コンパイルの問題が発生しているのは、Webサービスで生成されたコードだけではありません。.NET 3.5に変換されたすべてのプロジェクトについて、名前空間を参照できません。

なぜこれがすべて起こっているのかはまだわかりませんが、回避策を見つけました。コードにを追加することusing Ns = My.Project.MyServiceで、名前空間の型を。で参照することができましたNs.MyType

4

1 に答える 1

1

これは、VisualStudioのバグとして明らかに文書化されています。

https://connect.microsoft.com/VisualStudio/feedback/details/570557/targeting-net-framework-3-5-actually-targets-3-0-gac

System.Web.Extensions.dllをC:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3.5からC:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3にコピーすることにより、投稿に記載されている回避策を利用しました。 0。次に、VisualStudioを再起動しました。

それだけでは問題は解決しませんでした。アセンブリがコピーされた後、プロジェクトの変換を2.0から3.5にやり直す必要がありました。新しい変換後、コードは期待どおりにコンパイルされました。回避策の前後でプロジェクトファイルを比較しても、実質的な違いは見られなかったため、ビルドエラーはVisualStudioの内部状態が原因である可能性があります。

于 2011-02-25T17:10:54.340 に答える