草庐IT

c# - 将应用程序从 32 位移动到 64 位

我们有一个用C#编写的针对AnyCPU的Windows服务应用程序。它运行在Win2003(32位)服务器上。最近它开始耗尽内存。将此服务重新部署到Win2003(64位)框涉及什么。是否需要重新编译,如果不重新编译,App会不会占用更多内存? 最佳答案 如果为AnyCPU设置了exe,则没有什么特别的-默认情况下,64位CLR将在64位计算机上加载。您只需确保您真的准备好AnyCPU(没有不安全或安全的32位指针数学假设等)。如果您在没有PInvoke的情况下运行所有​​托管代码,您应该处于良好状态。

c# -/平台 :anycpu32bitpreferred is not a valid setting for option/target:library or/target:module

我创建了一个Windows服务项目,后来决定将其输出类型更改为类库,这样我就可以将服务类包含在另一个项目中,该项目将创建要作为服务安装的.exe。但是现在,当我尝试构建第一个项目时,它失败并出现错误:/platform:anycpu32bitpreferredisnotavalidsettingforoption/target:libraryor/target:module我该如何解决这个问题? 最佳答案 尝试卸载项目(在解决方案资源管理器中右键单击)编辑.csproj(右键单击解决方案资源管理器)删除true重新加载项目。

c# - 我的配置管理器中没有 'Any CPU' 选项

我已经阅读了几篇关于VS2010(或之前)中的配置管理器的文章,但我找不到我的问题。我有一个包含6个项目的解决方案。当我打开配置管理器时,我可以选择:'ActiveSolutionConfiguration'的值为Debug、Release、New或Edit。具有值AnyCPU、Mixedplatforms、x64、x86、New或Edit的“ActiveSolutionPlatform”。对于我的6个项目中的任何一个,配置(调试、发布、新建、编辑),平台(非启动项目:任何CPU、新建、编辑和启动项目:x64、新建、编辑)。对于除启动项目之外的所有项目,平台的唯一(真正)选择是“任何C

c# - 为什么 'Any CPU' 应用程序在 x64 机器上以 x86 运行?

我有一个AnyCPU应用程序安装到ProgramFiles(x86)。在一台Windows7x64机器上,它按预期以x64运行,而在另一台Windows7x64机器上,它以x86运行!这怎么可能?我希望它在两台机器上都以x64运行。可能是什么原因以及我该怎么做才能始终使其以x64运行?我从哪里运行它是否重要-在我的例子中是ProgramFiles(x86)? 最佳答案 很可能您链接了一些不是AnyCPU但包含native代码(或编译为x86)的程序集,这导致整个过程回退到x86。要了解您的程序集是如何编译的,可能有帮助的相关Stac

c# - C++ x86/x64 结构对齐 + .NET AnyCPU C++ 库使用(调用/回调)

由于我之前的问题没有成功(“C#AnyCPUlibraryusingx86/x64CAPI-packingstructures,callsandcallbacks”),我将写一个更简洁和抽象的问题。p>图片:我工作的公司有一个软件要移植到64位上。该软件由一个BASE库(带有CAPI的C++)和两个CAPI包装器组成:一个C++包装器和一个.NET包装器。C++BASE库和C++WRAPPER应该有x86/x64构建配置。.NETWRAPPER应该只有一个AnyCPU构建配置。从.NETWRAPPER中选择正确的库已成功完成(C++BASE库(x86/x64)正在两个单独的命名空间中加

c# - C# AnyCPU 项目能否包含平台特定的 dll

我们的产品基于大量C++项目,但我们现在将C#项目用于前端。我们现在也在做64位版本。我们的计划是将所有C#dll构建为AnyCPU。C#项目将引用公共(public)bin文件夹中的C++dll。在构建x64时,bin文件夹将包含我们的c++dll的x64版本,而在构建Win32时,bin文件夹将包含我们的C++dll的32位版本。因此,C#项目将构建AnyCPU,但包括x64或Win32c++dll。我的问题是,这行得通吗?在运行时,一切都应该是全部32或全部64,具体取决于我们正在运行的exe,但是编译时可以处理针对包含平台特定dll的AnyCPU的项目吗?还是我们必须制作所有C

c# - COM 无法启动编译为 AnyCPU 的进程外 .Net 服务器

我试图让COM启动我的进程外.NETCOM服务器。如果服务器进程是用x64编译的,它就可以工作,但如果我使用AnyCPU(这是我想要的),那么它会挂起一段时间并最终失败并返回0x80080005(CO_E_SERVER_EXEC_FAILURE)。我怎样才能让它发挥作用?我在64位计算机上运行:Windows7和VisualStudio2008SP1。我可以在任务管理器中看到它确实启动了我的服务器。所以我猜问题出在COM和服务器(类注册)之间的通信上。我的测试客户端应用程序是用C#编写的,但它是为x86还是x64编译的并不重要。用32位C++编写的内容也会出现此问题。如果我使用x64重

.net - 在 64 位操作系统上以 32 位运行 AnyCPU 应用程序

有没有办法在64位Windows环境中运行时将在AnyCPU下编译的.NET应用程序作为32位应用程序执行,而无需重新编译为x86? 最佳答案 您可以使用corflags使用/32bit+选项。 关于.net-在64位操作系统上以32位运行AnyCPU应用程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1075363/

c# - 当 AnyCPU 测试程序集实现来自 x64 生产程序集的接口(interface)时出现 BadImageFormatException

我似乎遇到了这样一种情况:当我在引用x64程序集的AnyCPU程序集上运行mstest时,我得到了BadImageFormatException。当AnyCPUTestingx64Production.dll测试程序集实现(即使未使用)x64Production.dll中的接口(interface)时会出现此问题:Unabletoloadthetestcontainer'D:\AnyCPUTestingx64Production.dll'oroneofitsdependencies.errordetails:System.BadImageFormatException:Couldnot

c# - 当 AnyCPU 测试程序集实现来自 x64 生产程序集的接口(interface)时出现 BadImageFormatException

我似乎遇到了这样一种情况:当我在引用x64程序集的AnyCPU程序集上运行mstest时,我得到了BadImageFormatException。当AnyCPUTestingx64Production.dll测试程序集实现(即使未使用)x64Production.dll中的接口(interface)时会出现此问题:Unabletoloadthetestcontainer'D:\AnyCPUTestingx64Production.dll'oroneofitsdependencies.errordetails:System.BadImageFormatException:Couldnot
12