问题标签 [anycpu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
16411 浏览

c# - 我的配置管理器中没有“任何 CPU”选项

我已经阅读了几篇关于 VS2010(或之前)中的配置管理器的帖子,但我找不到我的问题。

我有一个包含 6 个项目的解决方案。当我打开配置管理器时,我可以选择:带有值 Debug、Release、New 或 Edit 的“Active Solution Configuration”。具有值 Any CPU、混合平台、x64、x86、新建或编辑的“活动解决方案平台”。对于我的 6 个项目中的任何一个,配置(调试、发布、新建、编辑)、平台(非启动项目:任何 CPU、新建、编辑和启动项目:x64、新建、编辑)。

对于除启动项目之外的所有项目,平台的唯一(真正)选择是“任何 CPU”,我认为这很好。

但是,对于启动项目,我只能选择 x64,所以我假设在 32 位 Windows 操作系统上运行它会有问题吗?

我在历史上玩过一些价值观,现在有人给我发了这个错误,他得到了:

此文件的版本与您运行的 Windows 版本不兼容。检查您的计算机系统信息,看看您是否需要 x86(32 位)或 x64(64 位)版本的程序,然后联系软件发行商

(同样当我选择 x86 平台时,我只能在我的启动项目中选择 x64 作为平台,而其他设置为“任何 CPU”。

尝试将 Any CPU 添加到启动项目时,我可以选择它,但它要求复制设置,我只能选择 x64 或空。选择其中任何一个都会导致错误:

无法创建此平台,因为已存在同名的解决方案平台。

我假设它以前设置为 x86,但我不确定,无论如何,我怎样才能为我的启动项目恢复“任何 CPU”选择?

更新:突然间,我可以添加“任何 CPU”选项而不会出现错误。所以我的问题解决了...

我只是不知道为什么它第一次不起作用......我只是关闭了窗口并再次启动它,这是可能的。

0 投票
2 回答
3976 浏览

c# - 托管 C++ 和 AnyCPU

我有一个从 C# 项目引用的托管 C++ dll。C# 项目将编译为 AnyCPU。有没有办法编译托管 C++ dll 的 32 位和 64 位版本,然后在运行时告诉 C# 项目根据正在运行的架构加载正确的版本?

0 投票
2 回答
4259 浏览

c# - 为什么我用 Any CPU 编译的应用程序在我的 64 位机器上作为 32 位进程运行?

为什么我使用AnyCPU编译的应用程序在我的 64 位计算机上作为 32 位进程运行,因此无法与作为 64 位进程运行的记事本交互?

我有以下代码不会在 x64 操作系统上运行,因为notepad.exe它是 x64 并且 x86 应用程序无法获取 x64 进程的模块信息:

.Net 异常抛出我的代码:

System.ComponentModel.Win32Exception (0x80004005):32 位进程无法访问 64 位进程的模块。

根据这个论坛上的许多答案和文章,MSDN,...,我知道我需要使用 AnyCPU,因为使用 x64 对我没有特别的好处。即使在 AnyCPU 配置上编译时,我的错误仍然存​​在,此外,在任务管理器(32-bit)中,我在进程名称的末尾看到一个。

(实际上,我通过检查性能测试了代码,x64 代码运行速度快了约 40 毫秒。没关系,我不希望我的代码运行速度快 40 毫秒:D)

我不知道这是错的。

VS 2011 测试版 (x64)

Windows 8 消费者预览版 (x64)

此致,佩曼·莫尔塔扎维

0 投票
1 回答
303 浏览

c# - 与三元运算符一起使用时,x86 与 AnyCPU 在 .Max() 上返回不同的结果

https://github.com/qntmfred/FooTimestamp

AnyCPU 构建配置中的以下程序评估maxTimestampDateTime.MinValue.

* 自从我第一次发布这个问题以来,我一直在从几个不同的角度追逐这个错误,所以这些评论可能没有多大意义。如果您想查看所有内容,请查看修订历史记录,但我已经删除了大部分原始帖子,以专注于我现在将这个问题简化为的内容。

0 投票
2 回答
1419 浏览

winforms - VS 仅使用 x86 配置创建 winforms 应用程序,为什么?

我在 2 台计算机上安装了 VS.NET 10.0.40219.1 SP1,当我创建一个新的 C# Winform 应用程序时,只使用 Properties/Build/Platform x86,目标让我选择 AnyCpu/x64,但不能在配置(但是,库工作正常)。

如果我尝试在项目文件中手动更改它,我会收到很多令人讨厌的错误。这是我的安装中的正常行为、错误还是问题?

PD:当我手动更改项目时,发生了这种情况:

警告 1 未为项目“ * .csproj”设置 OutputPath 属性。请检查以确保您为此项目指定了有效的配置和平台组合。配置='调试'平台='x86'。如果其他项目试图遵循对此项目的项目到项目引用,此项目已卸载或未包含在解决方案中,并且引用项目未使用相同或等效项构建,则也可能出现此错误配置或平台。c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets

当我重新打开项目时,所有引用都变得无效

0 投票
1 回答
1580 浏览

.net - .NET AnyCPU 项目链接平台特定库

可能重复:
加载 x86 或 x64 程序集

我正在尝试编译 Any CPU .NET 项目,但我必须链接 SQLite 库,该库具有不同版本的 x86 和 x64 平台。仅将 DLL 版本更改为 x64 没有帮助,应用程序无法启动,我需要使用 x64 参考重新编译代码。当我同时添加 x86 和 x64 引用时,由于冲突,它无法编译。我无法使用 x86 编译应用程序,因为我使用的系统 COM 库之一在 WOW64 下不起作用。

All 32-bit VSS applications (requesters, providers, and writers) must run as native 32-bit or 64-bit applications. Running them under WOW64 is not supported

http://social.msdn.microsoft.com/Forums/en-US/windowsgeneraldevelopmentissues/thread/eadf5dcd-fbd1-4224-9a56-b5843efebb15/

所以我需要构建任何 CPU 项目,但目前我看到的解决这个问题的唯一方法是为 x86 和 x64 提供重复的项目。有更好的吗?

更新

当我在项目中引用 x64 库,但尝试加载 x86 库时,出现以下异常。

The located assembly's manifest definition does not match the assembly reference.

0 投票
3 回答
635 浏览

c# - 尝试在任何 CPU 上使用 TaskScheduler 时出现 BadImageFormatException

我们正在尝试将程序从 32 位更改为任何 CPU。该程序在 .NET 3.5 上使用 C# 编写。

我们正在使用 Windows 任务计划程序 COM 包装器。

应用程序可以编译,但是当我们尝试在 64 位平台上运行它时,我们会收到以下错误:

BadImageFormatException: 无法加载文件或程序集“Interop.TaskScheduler,Version=1.0.0.0,Culture=neutral,PublicKeyToken=4b71cab8d8e4499f”或其依赖项之一。试图加载格式不正确的程序。

更新:我们在 Any CPU 中创建了一个新的 C# 项目,以 TaskScheduler 作为参考,并使用非常简单的 2 行代码(创建 TaskSchedulerClass 的实例并将一行写入控制台)。我们在同一个 64 位平台上运行它,它工作正常。但是,整个应用程序仍然无法正常工作。谢谢您的帮助。

0 投票
0 回答
293 浏览

visual-studio-2010 - 我无法在 64 位窗口中构建 VSTO 解决方案

我正在为 PowerPoint 2010 开发加载项。

如果我尝试使用平台目标构建它,Any CPU或者x64我得到HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)

我的解决方案使用 SDK 及其库之一中提供的硬件 dll。我已经用 regsvr32 注册了它。

我以前遇到过类似的问题,总是用 regsvr32 解决,但现在它不起作用。

我可以避免在 x86 中构建这个问题,但是当我尝试在 x86 中运行调试或发布构建时,我得到给定的程序集名称或代码库无效。HRESULT: 0x80131047

我不知道该怎么办。

谢谢

0 投票
1 回答
163 浏览

silverlight - Silverlight 项目在“任何 CPU”选项下停止编译

我有一个 x64 构建服务器,它已经编译 Silverlight 项目很长时间了,没有任何问题。然后突然开始抱怨“没有安装Silverlight 4 SDK”,现在我只能在“x86”平台下编译SL项目。我想继续对所有项目使用“任何 CPU”,但我不知道发生了什么。

0 投票
2 回答
976 浏览

windows-8 - Windows 应用商店应用程序能否编译为 x86 而不是 AnyCPU?

我有一些 .NET 代码正在考虑移植到 Windows 应用商店应用程序中。

这段代码做了一些不同的事情,其中​​一件事情依赖于编译为 x86 而不是 AnyCPU。

这会是个问题吗?Metro 应用程序能否编译为 x86 并仍可在 Windows 应用商店中分发?是否被编译为 x86 会阻止它在 Windows RT 中运行?我是否必须想出一个没有此功能子集的版本才能在 Windows RT 中运行?如果我可以将代码放入它自己的程序集中,我可以让 Windows RT 版本不使用它吗?(所以,主要的可执行文件是 AnyCPU,而这个程序集是 x86)。