【问题标题】:How to Force an assembly to run as x64 bit which was built against AnyCPU platform?如何强制程序集作为针对 AnyCPU 平台构建的 x64 位运行?
【发布时间】:2016-05-07 21:10:29
【问题描述】:

我有一个针对 .NET 4.5.2 上的“AnyCPU”平台构建的程序集 但是当我在 64 位机器上运行程序集时,dll 采用 32 位形式, 经过大量研究后,我了解到thing 在 .NET 4.5 及更高版本中“具有 32BITPREF 的 ANYCPU”是默认设置。 我们可以使用 corflags 工具并将 flag 设置为 32bitpref-,这样 dll 将占用 64 位。

但我的问题是,这只能从构建脚本中发生,以便以后无需手动更改。

就像我们为平台和发布模式或调试模式指定的一样

32bitpref- 是否有任何属性,使其只能从构建脚本设置/重置??

提前感谢您的帮助。

问候 前言

【问题讨论】:

  • 如果您使用 msbuild 构建 - 您可以添加 /property:Prefer32bit=false 我想?
  • 该属性名为Prefer32Bit,可以添加到.csproj 项目文件中:<Prefer32Bit>false</Prefer32Bit>,或者如@Evk 所述,作为msbuild 的命令行参数:/p:Prefer32Bit=false
  • 谢谢 :) 实际上问题仅出在 Exe 应用程序上。我只在那里将 Flag 设置为 False。DLL 的引用按预期工作。谢谢你们的帮助:)
  • @JeffBridgman 你在这里 :)

标签: c# visual-studio-2012 msbuild .net-4.5 corflags


【解决方案1】:

相当多的属性在 msbuild 中都有合理的名称来设置它们。这里也是这样,属性名为Prefer32Bit,所以可以在csproj文件中设置:

<Prefer32Bit>false</Prefer32Bit>

与所有属性一样,它可以从 msbuild 命令行使用 /property:[PropertyName]=[PropertyValue] 语法(或简称:/p:[PropertName]=[PropertyValue])进行设置。

msbuild ... /property:Prefer32Bit=false

【讨论】:

    猜你喜欢
    • 2015-05-03
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多