【问题标题】:Can't get managed C++ assembly to work on Windows 10无法让托管 C++ 程序集在 Windows 10 上运行
【发布时间】:2016-09-26 08:11:31
【问题描述】:

我正在尝试将项目 (NBIS.Net 5.0.0) 编译为 .dll,以便我可以将其作为参考添加到另一个 .NET C# 项目 (VS 2013) 中。 一切正常,我的程序运行并使用引用库中的函数。这是在开发机器 (win7 x64) 和目标机器 (win7 x64) 上。

但是当我尝试在装有 Windows 10 的 Surface Pro 4 上运行它时,我的应用程序一开始使用该特定程序集的功能就会崩溃。 使用 VS 编译程序集时,是否需要更改任何设置? 或者 Windows 10 目标机器上是否缺少 Windows 7 机器上的运行时? 谢谢!

【问题讨论】:

  • 可能的原因包括你提到的两个,可能还有100多个。您是否有可用的故障转储,或者您可以将远程调试器附加到发布环境?
  • 围绕该特定调用放置 try/catch 并读取异常。您可能缺少 VS 可再发行组件。
  • 我在进程上附加了一个远程调试器,并且能够获得System.IO.FileNotFoundException:“无法加载文件或程序集'NBIS.dll'或其依赖项之一。指定的模块不能找到:NBIS.dll”此 .dll 与 exe 存在于同一文件夹中,并且还存在于 PATH 环境变量中的路径中。我怎样才能找出它找不到的依赖项?谢谢!
  • 可能是VCredist。看看这里:stackoverflow.com/questions/7378959/…
  • 我没有安装 Visual C++ 2010 Redistributable Package。这就是麻烦......

标签: c# .net managed-c++


【解决方案1】:

要解决此类问题,您可以使用 Fusion。它是 .NET 的程序集绑定日志记录工具。

Scott Hanselman 有一个Blog Post 使用它和相关工具。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 2020-01-06
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2015-11-02
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多