问题标签 [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.
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”选项而不会出现错误。所以我的问题解决了...
我只是不知道为什么它第一次不起作用......我只是关闭了窗口并再次启动它,这是可能的。
c# - 托管 C++ 和 AnyCPU
我有一个从 C# 项目引用的托管 C++ dll。C# 项目将编译为 AnyCPU。有没有办法编译托管 C++ dll 的 32 位和 64 位版本,然后在运行时告诉 C# 项目根据正在运行的架构加载正确的版本?
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)
此致,佩曼·莫尔塔扎维
c# - 与三元运算符一起使用时,x86 与 AnyCPU 在 .Max() 上返回不同的结果
https://github.com/qntmfred/FooTimestamp
AnyCPU 构建配置中的以下程序评估maxTimestamp
为DateTime.MinValue
.
* 自从我第一次发布这个问题以来,我一直在从几个不同的角度追逐这个错误,所以这些评论可能没有多大意义。如果您想查看所有内容,请查看修订历史记录,但我已经删除了大部分原始帖子,以专注于我现在将这个问题简化为的内容。
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
当我重新打开项目时,所有引用都变得无效
.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
所以我需要构建任何 CPU 项目,但目前我看到的解决这个问题的唯一方法是为 x86 和 x64 提供重复的项目。有更好的吗?
更新
当我在项目中引用 x64 库,但尝试加载 x86 库时,出现以下异常。
The located assembly's manifest definition does not match the assembly reference.
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 位平台上运行它,它工作正常。但是,整个应用程序仍然无法正常工作。谢谢您的帮助。
visual-studio-2010 - 我无法在 64 位窗口中构建 VSTO 解决方案
我正在为 PowerPoint 2010 开发加载项。
如果我尝试使用平台目标构建它,Any CPU
或者x64
我得到HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)
我的解决方案使用 SDK 及其库之一中提供的硬件 dll。我已经用 regsvr32 注册了它。
我以前遇到过类似的问题,总是用 regsvr32 解决,但现在它不起作用。
我可以避免在 x86 中构建这个问题,但是当我尝试在 x86 中运行调试或发布构建时,我得到给定的程序集名称或代码库无效。HRESULT: 0x80131047
我不知道该怎么办。
谢谢
silverlight - Silverlight 项目在“任何 CPU”选项下停止编译
我有一个 x64 构建服务器,它已经编译 Silverlight 项目很长时间了,没有任何问题。然后突然开始抱怨“没有安装Silverlight 4 SDK”,现在我只能在“x86”平台下编译SL项目。我想继续对所有项目使用“任何 CPU”,但我不知道发生了什么。
windows-8 - Windows 应用商店应用程序能否编译为 x86 而不是 AnyCPU?
我有一些 .NET 代码正在考虑移植到 Windows 应用商店应用程序中。
这段代码做了一些不同的事情,其中一件事情依赖于编译为 x86 而不是 AnyCPU。
这会是个问题吗?Metro 应用程序能否编译为 x86 并仍可在 Windows 应用商店中分发?是否被编译为 x86 会阻止它在 Windows RT 中运行?我是否必须想出一个没有此功能子集的版本才能在 Windows RT 中运行?如果我可以将代码放入它自己的程序集中,我可以让 Windows RT 版本不使用它吗?(所以,主要的可执行文件是 AnyCPU,而这个程序集是 x86)。