配置.NET Core以使用x86 SDK

Configure .NET Core to use x86 SDK

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

我从这里安装了x86版本。我可以在C:Program Files(x86)中看到它dotnetsdk1.0.0-preview2-003131

我将global.json更新为:

1
2
3
4
5
6
7
{
   "projects": ["src" ],
   "sdk": {
       "version":"1.0.0-preview2-003131",
       "architecture":"x86"
    }
}

但我得到了错误:

该项目配置为使用.NET Core SDK版本1.0.0-Preview2-003131,但该版本未安装或在路径C:Program FilesDotNet下找不到。构建和运行此项目需要这些组件。下载global.json中指定的.net core sdk版本,或将global.json中的sdk版本更新到安装的版本。

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

我该怎么做?

谢谢你的帮助!


找到了解决方案。

安装X64版本时,它在路径环境变量C:Program Filesdotnet中创建了一个条目。我卸载了x64版本并安装了x86版本。但是,卸载x64版本并没有从我的路径中删除c:program filesdotnet。因此,我手动删除了它,并确保x86版本添加的条目c:program files(x86)dotnet存在。


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

1
2
3
4
5
6
7
8
9
10
<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)后,编译器将找到正确的平台,如项目生成设置中指定的那样。


在卸载以前的版本后,问题即为已知。

基于正确的发布版本和目标平台安装此


出于某种原因,我的安装甚至没有添加路径变量。添加64位路径变量并重新启动Visual Studio对我很有效。