ASP.NET 2.0 Web サイトを Windows XP (32 ビット) マシンから Windows 7 (64 ビット) マシンに移行するのに少し苦労しています。進行中のことはたくさんありますが、目前の問題に集中します。
問題: 「'MySQL.Data, Version 5.2.3.0, Culture...' またはその依存関係の 1 つをファイルまたはアセンブリできませんでした」 というエラーが表示されます。
問題は、ソリューションでMySQL.Dataバージョン5.2.3.0をどこにも参照していないことです(または、少なくとも私が見つけたものではありません)。このコンピューターには MySQL 6.6 がインストールされており、web.config ファイルでそれを参照しています。私の人生では、5.2.3 を参照しているファイルを見つけることができません。「5.2.3」のソリューション全体を検索しましたが、どこにも見つかりません。構成ファイルを確認しましたが、MySQL 5.2.3 が見つかりません。*.cs ファイルもすべて確認しました。いいえ 5.2.3. なし。ジップ!なだ。それでも、特定のコード ファイル (using MySql.Data.MySqlClient ステートメントを含む) にアクセスしようとすると、上記のエラーが発生します。
スタック トレースはあまり役に立ちません。問題の原因として C# ファイルが表示されます。ただし、上で述べたように、そのファイルには 5.2.3 の痕跡はありません。何もありません。そのため、5.2.3 アセンブリがどこで参照されているのか、少し混乱しています。
スタック トレースは次のとおりです。
[FileNotFoundException: Could not load file or assembly 'MySql.Data, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The system cannot find the file specified.]
Login.Page_Load(Object sender, EventArgs e) in c:\Jose\KMWebsite2\Login.aspx.cs:42
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
そして、これもあります:
=== Pre-bind state information ===
LOG: User = Computer1\Jose
LOG: DisplayName = MySql.Data, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d
(Fully-specified)
LOG: Appbase = file:///C:/Jose/KMWebsite2/
LOG: Initial PrivatePath = C:\Jose\KMWebsite2\bin
Calling assembly : App_Web_lyss4wgv, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Jose\KMWebsite2\web.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: MySql.Data, Version=5.2.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d
LOG: Attempting download of new URL file:///C:/Users/Jose/AppData/Local/Temp/Temporary ASP.NET Files/kmwebsite2/49ca7fd8/cb38a83/MySql.Data.DLL.
LOG: Attempting download of new URL file:///C:/Users/Jose/AppData/Local/Temp/Temporary ASP.NET Files/kmwebsite2/49ca7fd8/cb38a83/MySql.Data/MySql.Data.DLL.
LOG: Attempting download of new URL file:///C:/Jose/KMWebsite2/bin/MySql.Data.DLL.
LOG: Attempting download of new URL file:///C:/Jose/KMWebsite2/bin/MySql.Data/MySql.Data.DLL.
LOG: Attempting download of new URL file:///C:/Users/Jose/AppData/Local/Temp/Temporary ASP.NET Files/kmwebsite2/49ca7fd8/cb38a83/MySql.Data.EXE.
LOG: Attempting download of new URL file:///C:/Users/Jose/AppData/Local/Temp/Temporary ASP.NET Files/kmwebsite2/49ca7fd8/cb38a83/MySql.Data/MySql.Data.EXE.
LOG: Attempting download of new URL file:///C:/Jose/KMWebsite2/bin/MySql.Data.EXE.
LOG: Attempting download of new URL file:///C:/Jose/KMWebsite2/bin/MySql.Data/MySql.Data.EXE.
問題は、その参照がどこにあるのかということです。ソリューションでそれを見つけて、バージョン 6 に更新するにはどうすればよいですか?
背景と詳細 (オプション :-)): 上で述べたように、サイトを XP (32 ビット) コンピューターから Windows 7 (64 ビット) コンピューターに移行しようとしています。最初は、新しい Windows 7 コンピューターで Web サイトを開こうとしただけでしたが、うまくいきませんでした。ソリューションを開いた直後に Visual Studio 2008 がフリーズし、シャットダウンする必要がありました。そこで、Web サイトをゼロから作成し、さまざまなファイル、フォルダー、およびアセンブリを 1 つずつ追加して、問題が発生したときに修正することにしました。
元のマシンには、MySQL 5 がインストールされています。ただし、新しいマシンに切り替えるときに、MySQL 6 に移行したいと考えていました。古いマシンの参照はすべて MySQL 5.2.3 を指しているため、もちろん、見つけられない目に見えない参照がどこかにあります。
私のシステム: 新しいマシンで:
- Windows 7 (64 ビット) SP1
- Visual Studio 2008 Web サイト
- ウェブサイトはビルトインを使用してファイルシステムから実行されます
- Visual Studio Web Server Web サイトは ASP.NET 2.0 (4.0 で作成しようとしたが断念)
- MySQL 6
- 多くの問題を引き起こすCrystal Reportsおよびその他のもの
古いマシンで
- WindowsXP
- ビジュアル スタジオ 2008
- Web サイトは IIS から実行されます
- Web サイトは ASP.NET 2.0 です
- MySQL 5
- Crystal Reports とスムーズに動作するその他の多くのもの