【问题标题】:C# application when build in Visual Studio 2010 64-bit does not work well在 Visual Studio 2010 64 位中构建时的 C# 应用程序无法正常工作
【发布时间】:2013-01-11 13:16:12
【问题描述】:

我正在开发一个关于设备模拟器的项目。如果有人使用它并选择要模拟的设备,则另一个应用程序(Net Viewer)必须能够检测到正在模拟的设备以及使用它的机器的 IP 地址。

这是我的问题。 我使用的是 64 位操作系统,而我的另一个队友使用的是 32 位操作系统。当我尝试在我的 PC 上构建项目并运行它时,Net Viewer 无法检测到我的 IP 地址。但是当我的队友构建项目并在他的 PC 上运行它时,它运行良好。然后,我们尝试在我的 PC 上运行他构建的项目,它运行良好。

是什么导致了这个问题?我们都在 Build Configuration 上使用 anyCPU。

【问题讨论】:

  • 能否提供一些代码,至少是与检测Ip相关的代码部分?
  • @daryal 我们的团队不是让应用程序能够检测 IP 地址的人。我们的应用程序是设备模拟器 :)
  • 您正在使用的应用程序的名称是什么?应用程序有单独的 X64 版本吗?
  • @for-each 我猜它与您的代码无关,但与其他程序有关。尝试检查引用的外部程序集(如果有)。
  • 您如何称呼其他“应用程序”?你真的使用 P/Invoke 来调用它吗?如果是这样,它很可能是 32 位的,您将不得不强制您的应用程序也是 32 位的(通过将平台目标更改为 x86)。

标签: c# visual-studio-2010 build


【解决方案1】:

事实证明,警报处理程序给我们带来了痛苦。我的队友解决了这个问题。我会尽快发布导致问题的代码 sn-p。

感谢所有分享他们想法的人。 :)

【讨论】:

    【解决方案2】:

    也许强制它使用 x86 而不是任何 cpu。 这样,您的应用程序将在 32 位上运行良好,并且将在您的 64 位操作系统上以 WOW64 运行。

    您还可以使用 corflags.exe 强制应用程序以 32 位方式运行:http://msdn.microsoft.com/en-us/library/ms164699%28v=VS.80%29.aspx

    如果这没有帮助,您需要提供更多详细信息。

    【讨论】:

    • ANYCPU 正是这样做的。将其从 ANYCPU 更改为 x86 并不能解决作者的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2019-03-15
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    相关资源
    最近更新 更多