2010-05-01 220 views
0

我有一個在32位機器上編譯的ASP.NET應用程序。有許多不同的程序集被引用。我用ILDASM打開了該網站的主DLL,並查看了.corflags。它表示這是ILONLY。但是,當我在64位機器(Windows XP Pro 64位)上本地運行網站時,我得到「不是有效的Win32應用程序」。應用程序不能運行爲64位,因爲它是用「AnyCPU」編譯的?我怎樣才能使這個工作?我正在使用.NET 3.5。我希望應用程序以64位而不是32位運行。ASP.NET 32位機器現在編譯試圖在64位機器上運行

+0

您可以定義「當我在本地運行網站」,即如何收到「無效的Win32應用程序」消息 - 是在事件日誌中? – Rob 2010-05-01 19:40:43

+0

是否所有引用的程序集AnyCPU?您無法在64位應用程序中加載任何32位程序集。 – 2010-05-01 19:54:59

+0

要本地運行(所有文件都在我的機器上),我運行http://localhost/myapp/mydefaultpage.aspx – user31673 2010-05-01 19:59:40

回答

1

可能有些DLL不會編譯爲AnyCPU。

使用sysinternals中的Process Monitor來找到它並修復它/更改它。

使用進程監視器,你可以看到它無法加載DLL的地方。

也可以在找到一些有問題的dll之後使用dependencyWalker,以查看dll上未加載的更多信息。

希望得到這個幫助。

相關問題