【问题标题】:Error when debug c# code in 64 bit environment在 64 位环境下调试 c# 代码时出错
【发布时间】:2014-07-03 15:38:46
【问题描述】:

Visual Studio 的默认运行环境似乎是 32 位。我需要在 64 位模式下运行我的应用程序之一。我将“平台目标”等项目属性更改为 64 位。但现在无法运行我的应用程序。我收到类似“无法加载文件或程序集 'MyProject' 或其依赖项之一的错误。尝试加载格式不正确的程序。”

然后我尝试了一个新的空白 WebApplication。仍然在那里也显示相同的错误。我删除了所有参考 dll 文件并从此路径“C:\Windows\Microsoft.NET\Framework64”添加了依赖项。但不幸的是仍然遇到同样的错误。

我更改了 IIS 的应用程序池属性(启用 32 位应用程序 = True)。然后尝试在本地 IIS Web 服务器中运行,但也没有成功。

我使用的是 Windows 7、64 位操作系统和 Visual Studio 2010。当使用以下 c# 代码查找运行环境时

using (RegistryKey registryKey = 
    Registry.LocalMachine.OpenSubKey(@"SOFTWARE\R-core\R"))
{
    var envPath = Environment.GetEnvironmentVariable("PATH");
string rBinPath = (string)registryKey.GetValue("InstallPath");
string rVersion = (string)registryKey.GetValue("Current Version");
rBinPath = System.Environment.Is64BitProcess 
        ? rBinPath + "\\bin\\x64" :rBinPath + "\\bin\\i386";
    Environment.SetEnvironmentVariable(
        "PATH",
    envPath + Path.PathSeparator + rBinPath);
}

System.Environment.Is64BitProcess 的值总是 false 我不想走 64 位路径,如果运行环境是 32 位。那么如何强制 VS 在 64 位模式下运行呢?

在这里我分享了我得到的错误响应页面。请帮我解决这个问题谢谢。

【问题讨论】:

  • 如果您在构建期间以 64 位为目标,则启用 32 位应用程序必须设置为 false ?
  • 我先尝试设置 Enable 32-Bit Application = False,但没有得到预期的结果。然后我尝试将该值也更改为 True。
  • 尝试使用全新的空网络应用程序。目标 x64 位。设置启用 32 位应用程序 = 假。检查它是否适合您的应用程序。应该没问题的。
  • 抱歉 NicoD,我已经尝试过了...正如我在问题中提到的,我创建了一个新的 Empty Web App,然后将 Platform Target 更改为 x64 而无需更改任何其他设置并尝试运行,但失败。然后我更改了依赖项并尝试仍然没有得到预期的结果。然后我更改了启用32位应用程序,同样我尝试通过更改所有设置来一一尝试..但没有成功
  • 但是您发布了应用程序或修改了 Visual Studio 中的属性以从 IIS 启动应用程序?

标签: asp.net 64-bit


【解决方案1】:

这里是一步一步的过程,在我的 VS2013 上,在 64 位操作系统上是可以的

  • 创建一个空白应用程序:新项目类型 WebApplication > WebForm(或其他)> 否 身份验证

  • Target x64 : 用于下拉列表中的调试模式

    • 选择配置管理器
    • 选择新平台并选择 x64 作为目标平台
  • 从项目的属性中,在 web 选项卡中

    • 选择本地 IIS 而不是 IIS Express
    • 创建虚拟目录 => 成功创建虚拟目录
  • 从 Visual Studio 以调试模式启动应用

【讨论】:

    【解决方案2】:

    这是在 Visual Studio 中在 x64 位环境中调试应用程序的步骤。

    1. 在项目属性“构建”选项卡中更改设置“平台目标 = x64”

    2. 对于“Web”选项卡中的 Web 应用程序,选择“使用本地 IIS Web 服务器”选项

    3. 然后点击“创建虚拟目录”

    4. 确保您的 IIS 应用程序池设置为“启用 32 位应用程序 = False”(默认情况下仅为 false)。

    然后调试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-08-05
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多