C# 如何绕过VC++;dll中的运行时要求?

C# 如何绕过VC++;dll中的运行时要求?,c#,c++,dll,runtime,C#,C++,Dll,Runtime,我在VS2008中编写了一个dll,我在我的C#应用程序中使用它,但我的用户不喜欢这样的事实:他们需要.NET framework和VC++运行时 P>是否有一种方法可以避免C++中的“必须拥有”VC++运行时?< /P> < P>。可以将静态运行库链接到DLL中。这样,它将永远在那里,不需要。C++ C++运行时。DLL可以建立运行时静态链接的DLL(/MT而不是/MD),属性->配置属性-> C/C++ >代码生成->运行库)。但如果你把第三个C++的DLL没有静态链接(这几乎是所有的),

我在VS2008中编写了一个dll,我在我的C#应用程序中使用它,但我的用户不喜欢这样的事实:他们需要.NET framework和VC++运行时


<> P>是否有一种方法可以避免C++中的“必须拥有”VC++运行时?< /P> < P>。可以将静态运行库链接到DLL中。这样,它将永远在那里,不需要。C++ C++运行时。DLL可以建立运行时静态链接的DLL(/MT而不是/MD),属性->配置属性-> C/C++ >代码生成->运行库)。但如果你把第三个C++的DLL没有静态链接(这几乎是所有的),那将是一场噩梦。这种情况将导致随机崩溃,这将使您永远无法进行调试。最简单的方法是使用一个对用户隐藏的安装程序。如果使用vs安装程序或作为nsis安装的一部分进行安装,则可以使用合并模块。这将使每个人的生活更轻松。尤其是你的。没有理由反对安装这些,就像有理由反对安装.NET framework一样。除非你需要它们而不需要它们,否则它们在稳定性方面没有区别。

当你说不喜欢它是如何展示的时候,你可以在项目的设置中指定它。我在C++的DLL中只有BooFISH算法功能,这是噩梦吗?不,但是你想从第三部分中添加另一个算法。说拉帕克。这将需要运行时。现在,在appdomain中有两个单独的c运行时链接模型。每个运行时实现自己的操作方式(尤其是分配)。请参见此处的MS建议