web-dev-qa-db-ja.com

Visual Studio 2010:ターゲットフレームワーク '.NETFramework、Version = v4.0'のmscorlibを解決できませんでした

現在、すべてのソリューションを2005年から2010年に移行しています(そうです、2008年はスキップしています!)。また、ファイル構造を変更して、より意味のあるものにします(いくつかの一般的なプロジェクトは特定のプロジェクトなどにネストされます)。

これはすべて、参照を変更する必要があることを意味します!それとは別に、すべてを.NET 4.0に設定しています。これを達成するために、117のプロジェクトすべてを同じソリューションで使用する一時的な「GOD」ソリューションを作成しました。

私は1人の同僚とこれを行っており、約2時間前まではすべてが計画どおりに進んでいました。しかし、117のプロジェクトの1つで問題が発生しました。このプロジェクトは、プロジェクトプロパティ内の参照、リソース、サービス、および設定タブを「表示」することを拒否します。

次の正確なメッセージが表示されます。

ターゲットフレームワーク '.NETFramework、Version = v4.0'のmscorlibを解決できませんでした。これは、ターゲットフレームワークがインストールされていない場合、またはフレームワークモニカが正しくフォーマットされていない場合に発生する可能性があります。

今、これは迷惑ですが、悪化します。私の同僚は、Subversionから同じソリューションを取得するときに、実際に参照や物事を確認および変更できます。実際のところ、現在、プロジェクトは実際に彼のマシンでビルドされています。彼は変更をコミットしましたが、この特定のプロジェクトをビルドすることも、参照を表示することもできません。

これは単純な結論につながります。トラブルを引き起こしているクライアントで何かが異なる必要があります!私が見たオンラインの提案は次のとおりです。

  • 複数の.NET4.0バージョンがインストールされている(これは私のクライアントには当てはまりません)
  • .NET v3.5はインストールされていません。 v4.0はv3.5を構築しようとしています(3.5はクライアントにインストールされています)
  • 登録キー:OnlyUseLatestCLRが設定され、物事を台無しにしています! (レジストリをスキャンしましたが、このキーはどこにもありません!)

参照: http://connect.Microsoft.com/VisualStudio/feedback/details/542789/

まだ試していない唯一のことは、.NET 4.0を修復することです。これは、他のプロジェクトを約100個持っているので、編集とビルドがうまくできるので、これが問題だと非常に疑います。 C#とVB.NETの両方。

42
F.B. ten Kate

Microsoft Visual Basic for Applications Extensibility 5.3(VBIDE)は悪魔の名前です!!!

どうやらこれは私の同僚が何らかの形で持っていた参照ですが、私はそうではなく、この参照のために、すべてが死にました。これは、特定のプロジェクト(VB.NETプロジェクト)で[すべてのファイルを表示]をオンにすると、通常はVB.Netプロジェクトにはない、甘いReferencesフォルダーが表示されるためです。タブが失敗した場合、フォルダーには警告付きの参照が1つ表示されました。どうやらこれはコンパイラーまたはVS2010が私に伝えることができなかったものですが、まさにそれを台無しにしていたものでした。

そのため、プロジェクトで作業中にこのエラーが発生した場合は、「すべてのファイルを表示」して、参照フォルダーを表示し、どの参照が問題の原因であるかを見つけてください!

3時間以上経ったら、これが見つかってうれしいです!! >。<

24
F.B. ten Kate

ソリューションへのパスが長すぎる可能性があります。

意味:

C:\ MyProject\Folder\SubFolder ...

「256文字」未満である必要があります。

http://wcfvs.blogspot.com/2011/04/could-not-resolve-mscorlib-for-target.html

私は同じ問題を抱えていたが、参照の問題がなかったときにこのスレッドを見つけました。上記のリンクを見つけて、問題を解決しました。うまくいけば、これは同じ問題でここに来る他の誰かを助けるでしょう。

69
Mike

今朝、このエラーが発生していました。私は次のことをしました:

  1. プロジェクトを再構築する
  2. 閉じたVisual Studio
  3. Visual Studioを再度開きました

エラーはなくなりました。

19
John

私のプロジェクトの(Web)サービス参照についても同じ問題がありました。 「サービス参照の更新」と「サービス参照の設定」の両方が機能しなくなりました。

さて、(Web)サービス参照を捨​​てて、もう一度作成してみましょう。立ち入り禁止!同じエラーメッセージ。

解決策:プロジェクトファイルを編集し、サービス参照に関係するすべてを削除します。

手順:

  • ソリューションエクスプローラーに移動し、プロジェクト名を右クリックして[プロジェクトのアンロード]を選択します。
  • ソリューションエクスプローラーに移動し、プロジェクト名を右クリックして、「Edit YourProjectName.proj」を選択します
  • (web)サービス参照と関係があるすべての要素を削除します。 (通常、テキスト「サービス参照」が含まれます)
  • ソリューションエクスプローラーに移動し、プロジェクト名を右クリックして[プロジェクトの再読み込み]を選択します。
  • (Web)サービス参照を再度追加します。

問題は解決しました(私の場合はそうでした)。

何が起きたのかという私の推測:Webサービスのどこかでクラスを変更しました。インターフェイスは変更されておらず、Visual Studioは何らかの形で変更を認識していません。 (キャッシュ?)構成が一致しなくなり、(Web)サービスの構成/再構築/削除が失敗します。

3
RWC

私は自分のプロジェクトに取り組んで作業を保存し、Visual Studio 2010を閉じました。作業のために再度開いたときにこのエラーが発生しました。 )そして、私はVS2010でプロジェクトを再び開き、それは働いていました。

3
audreyyy...

今日この問題があり、解決策は手動でResources.resxファイルを編集することでした。

私のResources.resxファイルは次のようになりました。

  <data name="SomeString" xml:space="preserve">
    <value>I am a string</value>
  </data>
  <Assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <data name="MyLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\MyLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="Open" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\Open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>

Visual Studioは<data>要素の後にある2つの<Assembly>要素を気に入らなかったことが判明しました。 <Assembly>要素の前に移動した後、私の問題は解決しました。

  <data name="SomeString" xml:space="preserve">
    <value>I am a string</value>
  </data>
  <data name="MyLogo" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\MyLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <data name="Open" type="System.Resources.ResXFileRef, System.Windows.Forms">
    <value>..\Resources\Open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
  </data>
  <Assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
2
hattenn

私は同じ問題を抱えていて、.Net 4.0の再インストールや再起動など、上記のほとんどを試してもまだ消えませんでした。

最終的に、プロジェクトツリーを下に移動することで解決しました。すなわち。ドライブのルートに近い。ディレクトリとファイル名が長すぎることが判明し、参照が切り捨てられたため、解決できなかったと思います。

問題はすぐに発生しました。

2
Jason

リソースエディターで私に起こった。

原因:AppConfigFileというプロパティを定義した.Targetsファイルをインポートしていましたが、これはおそらく同じ名前の内部プロパティを上書きしました。

<PropertyGroup>
  <AppConfigFile>...</AppConfigFile>
</PropertyGroup>

修正:プロパティの名前を別の名前に変更すると、問題はなくなりました。

1
Jonathan

.NET 4.5から.NET 4.6.2に移行するときに、Visual Studio 2013でこの問題が発生しました。問題のプロジェクトはウェブサイトのプロジェクトでした。

Visual Studioは、Reference.svcmapを生成するツールを自動的に実行します。 Reference.csは次で始まります:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

新しい.NETバージョンを選択しただけで、Visual Studioは生成されたファイルを消去し、内容を埋めませんでした。上記のすべてのソリューションを試しましたが、どれも機能しませんでした。最終的には、.NET 4.5.1に続いて.NET 4.6.2を選択し、ツールを実行しました。ファイルの違いは、コメントに含まれていたツールのバージョン番号のみであったため、GITからファイルを回復できたはずです。

1
marc

私はvb.netプロジェクトをVS 2015に移行していました。同じ問題もありました。問題は.Netフレームワークではありません。特定のフレームワークバージョンをターゲットとする新しいプロジェクトを作成でき、成功したためです。

私の場合、プロジェクトはFPSpreadADOおよびその他の類似のライブラリを参照していました。これらの参照を削除すると、正常に機能しました。

0
Vivasaayi

私にとっては、Target Framework 4.0を設定するだけで問題が解決しました。ターゲットフレームワークが何らかの形で明確な場合もあります。それが問題を引き起こす可能性があります。

0
hoanvd1210

プロジェクトプロパティのターゲットフレームワークが正しく設定されていることを確認します-デフォルトでは「.Net Framework 4.0 Client」です-「.Net Framework 4.0」が必要な場合があります

このスレッド を参照してください。同じ問題のように見えます

この記事 を確認することもできます。これは、リフレクターを使用した同じ症状の問題のデバッグに関するものです

0
Richard

XamarinForms PCLプロジェクトでも同様のエラーが発生しました。
エラーはプロジェクトの参照に関するものであることがわかりました。 xamarin.formsを最新バージョンに更新しましたが、何らかの理由でNuGetはプロジェクトファイル(xml)から以前のバージョンのすべての参照を削除できませんでした。
それで、プロジェクトファイルから次の行を削除するだけで機能しました。

<Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" />

それが誰かを助けることを願っています...

0
Dr TJ

ほとんどの場合、参照がないために発生しました。
ソリューションエクスプローラー->リファレンス->不足しているリファレンス(黄色)を確認できます。

0
Anto sujesh

今日この問題に出くわしましたが、プロジェクトのファイル名が長すぎることが原因であることがわかりました。

これは、いくつかのサービス参照によって引き起こされました。サービス参照がインポートまたは更新されると、Visual Studioは.datasourceファイルを生成します。ファイル名は完全修飾名です。これは、場合によっては本当に長い名前を意味します。

あちこち探してみたところ、これらのファイルを削除しても安全であるというヒントが見つかりました。 this または this outを確認します。

これらの.datasourceファイルを削除すると、問題が解決しました。

0
Magnus

私に起こったことは、私のプロジェクトに関するすべての参照が失われたため、それらを再度挿入する必要がありました。

0
Sonhja

今日、この問題はVisual Studio 2017でユニバーサルWindowsプラットフォームアプリケーションとして始めたようでしたが、最終的にはWindows Formsデスクトップアプリケーションに落ち着いたプロジェクトで発生しました。

どういうわけか、分岐ミスまたはソース管理の問題のいずれかによって、いくつかの古い/破棄されたUWP XAMLファイルと、プロジェクトフォルダーに巻き戻される "project.json"ファイルがあります。 VSは、上記の他のユーザーが報告したのと同様のエラー(たとえば、「ターゲットフレームワーク '.NETFramework、Version = v4.7'のmscorlibを解決できませんでした」)でWindows Formsアプリをビルドまたは起動しなくなりました。

廃止されたすべてのUWPジャンク(「project.json」、すべてのXAMLファイル、およびその他の関連するナンセンスを含む)をプロジェクトフォルダーから削除し、ソリューションを再ロードすると、エラーがなくなり、プロジェクトが正常にビルドおよび起動されました。

お役に立てれば。

0
Jonathan B.

私もこのエラーを受け取りました。 (「ターゲットフレームワーク '.NetFramework 4.5.1'のmscorlibを解決できませんでした。これは、ターゲットフレームワークがインストールされていない場合、またはフレームワークモニカが正しくフォーマットされていない場合に発生します。」).

これは、VB 2013プロジェクトでフレームワークを3.5から4.5.1に変更したときに発生しました。解決策は、.vbprojファイル上のすべての参照を削除することでした。 。

もちろん、これを行った直後に、他のあらゆる種類のエラーがプロジェクトに現れました。

次に、それらを同じ場所に1つずつコピーして、問題のあるものを特定するためにバックアップからコピーし始めました(私はそれらを修正するために得た新しいエラーに関連するものをコピーしました)、影響を受けるウィンドウが適切に視覚化されるまで、毎回プロジェクトを更新します。

この問題を引き起こしたのは、それらがカスタマイズされたライブラリ参照であるという結果になりました。これが誰かを助けることを願っています。乾杯!

開発者。

0
ADeveloper

今日これに走りました。

Binおよびobjフォルダーを削除しました。

Visual Studioを再度開くと、突然機能しました。

0
Clay Lenhart

ソースディレクトリが読み取り専用の場合、同じ問題が発生しました。ワークスペースをバージョン管理サーバー(Perforce)と同期すると、編集のためにディレクトリをチェックアウトすることを選択しない限り、デフォルトですべてのディレクトリが読み取り専用になります。時々私は怠け者で、いつでもこれらのプロジェクトのいくつかに取り組んでいる唯一の人なので、これをしません。しかし、このエラーは解消され、読み取り専用フラグがクリアされます。

0
Nick