【问题标题】:using c++ wrapper in c# .NET project在 c# .NET 项目中使用 c++ 包装器
【发布时间】:2018-10-12 13:32:03
【问题描述】:

我在此链接中使用 C++ 包装器: https://github.com/TekRTSA/RSA_API

为了在 C# 项目中使用用 C++ 编写的驱动程序。 当我发布/发布我的 C# 项目时,它无法在没有 Visual C++ 的其他计算机上运行。

有什么方法可以在没有 Visual C++ 的计算机上发布我的项目?或者有没有我可以使用的像 .NET 这样的软件包来使它工作?

【问题讨论】:

  • 您在“其他”计算机上看到什么样的错误?
  • 如果我不得不猜测您正在使用的库可能需要可再发行组件,在这种情况下您无能为力。只要确保你让你的用户知道他们是 VC++ redist,它应该没问题,它是一个相当常见的可再分发对象
  • 谢谢,这是错误:无法加载文件或程序集“APILibrary.dll”或其依赖项之一。找不到指定的模块。
  • 另外,您可以静态链接非托管 C++ 库,使其不依赖任何外部 DLL。
  • 您还需要将 APILIbrary.dll 分发到您的客户计算机上。

标签: c# c++ .net visual-studio visual-c++


【解决方案1】:

对于 .NET 应用程序,您需要确保客户的 .NET 版本与您编译应用程序时所用的相匹配。

对于依赖于 C 运行时的 (Microsoft) C++ 应用程序,您需要确保客户拥有与您编译应用程序时所用的相匹配的 Visual C++ Redistributables 版本。谷歌搜索“visual c++ redistributable”,你会看到很多关于寻找什么的建议。

【讨论】:

  • 我发现这个可再分发:support.microsoft.com/en-us/help/2977003/… 但它看起来适用于 Visual Studio,我的应用程序在没有 Visual Studio 的计算机上无法运行。有没有其他可以在没有 VS 的情况下运行的可再发行组件?
  • 还要确保 C++ dll 编译为 Release 版本,如果没有安装 VS,则无法重新分发调试版本(至少不以受支持的方式)
  • 你必须知道你正在编译的 Visual c++ 编译器的版本。然后找到匹配的visual c++ redist。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
相关资源
最近更新 更多