gpt4 book ai didi

.net-core - 错误 NETSDK1032 : The RuntimeIdentifier platform 'win-x86' and the PlatformTarget 'x64' must be compatible

转载 作者:行者123 更新时间:2023-12-04 04:20:14 24 4
gpt4 key购买 nike

我的解决方案是:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29613.14
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Core31ConsoleApp", "Core31ConsoleApp\Core31ConsoleApp.csproj", "{06477443-295A-47CA-A36E-A3F6B3AE47AC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Debug|x64.ActiveCfg = Debug|x64
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Debug|x64.Build.0 = Debug|x64
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Debug|x86.ActiveCfg = Debug|x86
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Debug|x86.Build.0 = Debug|x86
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Release|x64.ActiveCfg = Release|x64
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Release|x64.Build.0 = Release|x64
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Release|x86.ActiveCfg = Release|x86
{06477443-295A-47CA-A36E-A3F6B3AE47AC}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {17BBBF08-C7F4-4F6A-AD8F-32F2F3F21D27}
EndGlobalSection
EndGlobal

控制台项目是:
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Platforms>x86;x64</Platforms>
</PropertyGroup>

</Project>

该项目仅包含一个包含其默认内容的 C#“Program.cs”文件:

using System;

namespace Core31ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}


如您所见,它或多或少是为 .Net Core 3.1 创建的新控制台应用程序。我所做的唯一修改是用 x86 和 x64 替换了“任何 CPU”架构。它可以使用 VS 成功构建,适用于 Release/Debug 和 x86/x64 的所有组合。

当我从 cmd/powershell 尝试以下两个命令中的任何一个时,它也会成功构建。
dotnet build Core31ConsoleApp.sln --configuration Debug --runtime win-x64
dotnet build Core31ConsoleApp.sln --configuration Release --runtime win-x64

当我尝试这两个之一时,问题就开始了:
dotnet build Core31ConsoleApp.sln --configuration Release --runtime win-x86
dotnet build Core31ConsoleApp.sln --configuration Debug --runtime win-x86

它们失败并出现以下错误消息:

C:\Program Files\dotnet\sdk\3.1.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(151,5): error NETSDK1032: The RuntimeIdentifier platform 'win-x86' and the PlatformTarget 'x64' must be compatible.



这是重现此问题的最小解决方案,但我有一个更大且配置相同的解决方案,但以不同的方式失败:

C:\Program Files\dotnet\sdk\3.1.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets(151,5): error NETSDK1032: The RuntimeIdentifier platform 'win-x64' and the PlatformTarget 'x86' must be compatible.**



它对前两个命令失败并适用于第二对。这可能是因为较大的解决方案在本节中有不同的顺序:
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection

我正在使用 VS2019 和 .Net Core 3.1 SDK(64 位)的 Win 10 Prof 机器(英特尔的 I7)在最近的 VS 更新之一上工作。系统和所有安装的软件都是最新的。

我完全不知道这里出了什么问题或我做错了什么。

我将不胜感激任何帮助。

最佳答案

向节点“RuntimeIdentifier”添加值是没有用的。我问你,你是如何加载命令提示符的?您的任务栏或图标是否使用了 BATCH 文件?有没有用

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
如果是这样,您可能正在使用由该批处理文件创建的 C++ 命令环境运行“dotnet build”。
答案:不要使用 VC++ 命令环境来运行 ASP.NET Core CLI。而是使用为 ASP.NET Core CLI 命令正确配置的命令环境。我怎么知道这个?如果您查看 vcvarsall.bat,您将在该批处理文件的第 71 至 75 行看到以下问题:
@REM This temporary environment variable is used to control setting of VC++ 
@REM command prompt-specific environment variables that should not be set
@REM by the VS Developer Command prompt (specifically vsdevcmd\ext\vcvars.bat).
@REM The known case this effects is the Platform environment variable, which
@REM will override platform target for .NET builds.
相反,请使用 VS2019 附带的那个,就像在 Windows 开始菜单中一样。命令窗口应如下所示:
Visual Studio "boxed" Command
如下所示,我编译了一个 WASM,只要你有正确的 MS Build 环境,它就可以工作,在 VS 2019 命令环境中正确设置:
Build Success! Use the Command Environment that comes with VS 2019

关于.net-core - 错误 NETSDK1032 : The RuntimeIdentifier platform 'win-x86' and the PlatformTarget 'x64' must be compatible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59572680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com