gpt4 book ai didi

c# - 在 x86 系统上编译 C# .NET x64 二进制文件

转载 作者:可可西里 更新时间:2023-11-01 08:13:04 27 4
gpt4 key购买 nike

我有一个 C# 项目,其中包含对 ScintillaNET 的引用。不幸的是,ScintillaNET 喜欢检测机器的架构并根据运行的架构加载 native DLL。这意味着我的项目必须预编译成x86和x64版本(由于上述检测,我无法使用任何CPU)。

问题是我的构建服务器是 x86-only。有没有一种方法可以在 x86 机器上以 x64 模式编译 .NET 程序集?据我所知,切换只是强制计算机加载所需体系结构的程序集,并且在编译时实际上不会输出任何体系结构相关的代码,但是,在构建服务器上的 Mono 2.10.6 下编译时我得到如下错误:

“错误 CS0016:无法写入文件‘ScintillaNet’,原因:AMD64”

我无法使用 CorFlags.exe 更改 PE header ,因为这是基于 Linux 的构建服务器。有什么办法吗?

最佳答案

我最终通过将项目切换回 Any CPU 解决了这个问题。由于无论 .NET 设置如何,Scintilla 都只能在 native 架构中运行,因此我必须在我的机器上以 64 位运行它。最初我打算将架构强制为 32 位以获得编辑并继续,这导致混淆了 Scintilla 如何检测架构。

实际上,Scintilla 会强制采用 native 架构,但如果您在任何 CPU 下构建和运行,.NET 应用程序将正常运行。此外,由于我无法在 32 位模式下运行带有 Scintilla 的 .NET 应用程序(用于编辑并继续工作),我也无法在我的机器上强制使用 64 位模式。

关于c# - 在 x86 系统上编译 C# .NET x64 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8971584/

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