asp.net core 1.如何将Target Runtime改为x86

Posted

技术标签:

【中文标题】asp.net core 1.如何将Target Runtime改为x86【英文标题】:asp.net core 1. how change the Target Runtime to x86 【发布时间】:2016-07-06 23:36:02 【问题描述】:

我开发了一个 Asp 核心 Web 应用程序(.net 框架)。 如何指定运行为 32 位应用程序?

发布向导不让位更改Target Runtime,选择的选项是x64。

我在我的机器上安装了 x86 版本的 .NET Core 安装程序。

发布向导截图:

PS 为什么我需要 x86。

我必须在安装了 Microsoft Access 32 位(2003 年,用于旧软件)的计算机上运行该站点。 我还需要访问 Microsoft Access 文件中的数据,这需要我使用 Microsoft.Jet.OLEDB.4.0 驱动程序。

问题可能在于,应用程序的核心 ASP.NET 始终作为 64 位应用程序运行,这就是给我已知异常“未注册驱动程序”的原因 在 IIS 中设置“启用 32 位应用程序”之后仍然如此。

我无法安装 64 位访问驱动引擎,因为它需要删除 MS Access 32 位...

【问题讨论】:

当您在发布问题之前搜索网络时,您看到this thread on GitHub了吗? @GordThompson 我明白了,但实际上我不知道该怎么做......我也安装了 x86,但仍然没有选择作为 x86 发布 【参考方案1】:

正如提到的here,您需要将"runtimes" 密钥添加到您的project.json 文件中,如下图所示。

完成此操作后,Publish 菜单中的 Target Runtime 条目将列出您指定的所有运行时。虽然这还不足以让它工作,因为使用Publish 菜单并选择x86 版本将无效,并会产生x64 二进制文件。 (此错误可能会在将来修复)。

解决方法是导航到project.json 所在的项目文件夹。打开命令提示符并键入以下内容以使您的二进制文件处于所需的运行时:

dotnet publish --runtime win7-x86

如果您还遇到任何错误,您可能需要安装相应的运行时(下载表格here)。

更多信息:

https://docs.microsoft.com/en-us/dotnet/articles/core/app-types https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog#what-are-rids

buildOptions 下还有一个 platform 键,列出了所有可能的目标,但由于某些问题(如 #1624),它没有任何效果,而且系统似乎忽略了这一点。

【讨论】:

以上是关于asp.net core 1.如何将Target Runtime改为x86的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存

如何将项目引用添加到 ASP.NET Core 1.0 MVC 项目

选择 webApi 模板时如何将 ASP.Net 身份添加到 Asp.Net Core?

如何先用asp.net身份框架数据库将asp.net mvc迁移到asp.net core

asp.net core1.x/asp.net core2.0中如何加载多个配置文件

如何在 ASP.NET Core 中使用区域