配置 .NET Core 以使用 x86 SDK

Configure .NET Core to use x86 SDK

我正在尝试更改我的 .NET Core Web 应用程序以使用 x86 版本的 .NET Core SDK。

我从 here 安装了 x86 版本。我可以在 C:\Program Files (x86)\dotnet\sdk.0.0-preview2-003131

中看到它

我将 global.json 更新为:

{
    "projects": [ "src" ],
    "sdk": {
        "version": "1.0.0-preview2-003131",
        "architecture": "x86"
    }
}

但是我收到错误:

项目配置使用.NET Core SDK版本1.0.0-preview2-003131,未安装或在路径C:\ProgramFiles\dotnet下找不到。这些组件是构建和 运行 这个项目所必需的。下载global.json中指定的.NET Core SDK版本或将global.json中的SDK版本更新为安装的版本。

我想我需要告诉我的应用程序查看 C:\Program Files (x86)\dotnet

我该怎么做?

感谢您的帮助!

找到解决方案。

当我安装 x64 版本时,它在我的 PATH 环境变量中创建了一个名为 C:\Program Files\dotnet 的条目。我卸载了 x64 版本并安装了 x86 版本。但是,x64 版本的卸载并没有从我的 PATH 中删除 C:\Program Files\dotnet。因此,我手动删除了它,并确保 x86 版本添加的条目 C:\Program Files (x86)\dotnet 存在。

出于某种原因,我的安装甚至没有添加 PATH 变量。添加 64 位路径变量并重新启动 visual studio 对我有用。

问题已知,卸载之前的版本后

The install this based on the correct release version and target platform

您可以通过在项目的根目录中创建一个 Directory.Build.targets 文件来解决这个问题。

<Project>
  <PropertyGroup 
      Condition="'$(OS)' == 'Windows_NT' and
                 '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and
                 '$(SelfContained)' != 'true'"
                  >
    <RunCommand Condition="'$(PlatformTarget)' == 'x86'">$(MSBuildProgramFiles32)\dotnet\dotnet</RunCommand>
    <RunCommand Condition="'$(PlatformTarget)' == 'x64'">$(ProgramW6432)\dotnet\dotnet</RunCommand>
  </PropertyGroup>
</Project>

现在,安装两个 SDK(x64、x86)后,编译器将找到正确的平台,如您的项目构建设置中指定的那样。

万一它能帮助到别人,我将解释解决方案。 进入控制面板 -> 写入搜索环境变量 -> 编辑系统环境变量 -> 环境变量 -> 系统变量 -> 路径,然后按编辑。

到达那里后,将“C:\Program Files\dotnet”移动到“C:\Program Files (x86)\dotnet”下方。

重新启动您的终端,它应该可以工作了