gpt4 book ai didi

c# - VS 2017 .NET 4.6.2 新增 ASP.NET Core Web Application (.NET Framework) 默认为 x86 平台

转载 作者:太空狗 更新时间:2023-10-30 01:30:43 27 4
gpt4 key购买 nike

为什么?

Web 应用程序(.NET Framework)和核心 Web 应用程序(.NET Core)都面向 AnyCPU 平台。

这是一个错误还是这样做有什么值(value)?

我在 Windows 10 x64 上安装了 4/18/2017 VS 2017 更新。

Microsoft Visual Studio 企业版 2017版本 15.1 (26403.7) 发布VisualStudio.15.Release/15.1.0+26403.7微软.NET框架版本 4.6.01586

最佳答案

我想这是出于兼容性原因。 x86 可能是指您的 <RuntimeIdentifier>在 csproj 中。

<PropertyGroup Condition="'$(TargetFramework)' == 'net462'">
<RuntimeIdentifier>win7-x86</RuntimeIdentifier>
</PropertyGroup>

需要它的原因之一是拉取 Nuget 依赖项,而 ASP.NET 核心依赖于一些 native /非托管库(=库不是用 C#/CLR 编写的,而是用 C/C++ 编写的 native 库),例如 libuv (参见 NuGet ),它是 ASP.NET Core 使用的异步套接字库。

如果它默认为 x64那么这种应用程序无法在 x86 操作系统上恢复/运行,所以目前唯一合理的设置是 x86。

对于 .NET CLR/IL 代码,体系结构(x64 或 x86)并不重要,但对于这些外部依赖项而言却很重要。这也是为什么在隐藏以 net45 为目标的 project.json 项目时出现错误的原因。和 netstandard1.x对于 csproj,您需要将上述 xml 代码添加到您的 csproj,以向 NuGet 提示它应该恢复哪种类型的架构。

您可以安全地将其更改为 <RuntimeIdentifier>win7-x64</RuntimeIdentifier> ,如果您和您的同事都没有在 x86 操作系统上开发项目。有关有效 RID (RuntimeIdentifiers) 的列表,请参阅 ASP.NET Core documentation .当然,对于 .NET Framework,您仅限于 win* RID。

应该没什么好担心的,您可以将其保留为默认值。通常这无关紧要,因为大多数库都在 NuGet 包中随附了 x64 和 x86。但是可能有一些库只能在一个或其中一个上运行。

关于c# - VS 2017 .NET 4.6.2 新增 ASP.NET Core Web Application (.NET Framework) 默认为 x86 平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43610068/

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