【问题标题】:Prerequisites for deploying a .NET C++/CLI DLL?部署 .NET C++/CLI DLL 的先决条件?
【发布时间】:2013-09-17 20:11:01
【问题描述】:

我编写了一个 C++/CLI DLL 用于我的 GUI .NET 应用程序。在我的本地开发机器上,一切都按预期工作。不过,我的 GUI 应用程序说它无法在任何其他机器上加载我的 C++/CLI DLL。它总是说它无法加载我的 DLL 或其依赖项之一。所以我在想也许是缺少 C 运行时之类的?

在另一台机器上使用我的 C++/CLI DLL 之前是否需要安装任何先决条件?严格来说,从 .NET 或 C++ 运行时的角度来看。

编辑:对不起。它是 VS2012、.NET 4.0、Platform Toolset v110。

【问题讨论】:

  • "无法加载" = BadImageFormatException?然后是 32 位与 64 位的问题。您使用的是 .NET 4.5 吗?
  • 您需要更好地记录 VS 版本和运行时错误。但是,是的,C++/CLI 程序集有 C++ 运行时支持 DLL 的先决条件。
  • .NET 版本是一个。
  • 抱歉,我更新了问题。我正在使用 VS2012、.NET 4.0 和平台工具集 v110。

标签: c# c++ .net dll c++-cli


【解决方案1】:

除了其他 .Net 语言具有的依赖项(例如 .Net 框架)之外,C++/CLI 还需要 C++ 运行时。

您可以download Microsoft 为 VS 2012 重新分发 C++ 运行时。根据您的 C++/CLI 程序集的编译设置选择 x86 或 x64 版本,而不是目标计算机正在运行的 Windows 版本。

请注意,这只是 Release 编译的运行时。 Debug 编译使用不同的运行时,它没有可再发行组件,并且仅与 Visual Studio 一起安装。

【讨论】:

  • 谢谢。就是这样。我正在部署我的 C++/CLI 调试编译的 DLL。我不得不将它切换到发布配置,它现在可以工作了。
猜你喜欢
  • 2016-04-21
  • 2010-09-05
  • 1970-01-01
  • 2010-12-14
  • 1970-01-01
  • 2023-03-10
  • 2013-02-10
  • 2011-02-02
  • 1970-01-01
相关资源
最近更新 更多