1

最近、asp.net 3.5 ソリューションを VS 2008 から VS 2010 に切り替えましたが、それでも .net 3.5 にしたいと考えています (展開サーバーは 3.5 のみで実行されるため)。

ライブラリは問題ありませんが、Web サイトが問題を引き起こしています。すべての aspx ページで表示されるエラー メッセージは次のとおりです。

D:\WebSites\.....aspx: ASP.NET runtime error: Could not load type 'Microsoft.Build.Framework.ITaskItem2' from assembly 'Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

コンパイラが探しているインターフェイス (ITaskItem2) は .net 4.0 でしか利用できないことがわかりましたが、明らかに間違っている 3.5 アセンブリでそれを探し続けています。

この不一致の原因を突き止めようとしましたが、うまくいきませんでした。

インテリセンスがaspコンポーネントに対して機能せず、Webページのデバッグも機能しないため、作業が大幅に妨げられます。

しかし、VS でこのエラーが発生した場合でも、ブラウザ (IIS を使用) でページを表示するとページは正常に動作するため、これは VS のみの問題です。

ここで何が間違っているのか、何か考えがあれば教えてください。

ありがとう

4

1 に答える 1

1

そのため、多くの実験を重ねた結果、問題を解決することができました。

解決策は、VS に Web サイトの新しい標準 web.config を生成させ、使用しているいくつかの追加オプションを追加することでした..

古い web.config と新しい web.config の違いは 2 つだけです。

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

に変更されました

<runtime>
<assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">

これが何かに影響するかどうかはわかりません。

しかし、もっと重要なことは、動作していない web.config に次のセクションが 1 つ追加されていること<runtime>です。

  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Build.Framework"
       publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
      <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="3.5.0.0"/>
    </dependentAssembly>
  </assemblyBinding>

私は web.config の第一人者ではなく、提供されたセクションの何が問題なのかわかりませんが、それがなくても物事は奇跡的に機能し始めました.

于 2013-09-06T13:00:18.693 に答える