让c#和c ++一起玩得很好

时间:2013-04-04 18:33:00

标签: c# c++ .net windows-installer

我有一个通过COM访问c ++项目的c#解决方案。该项目必须针对特定的处理器,在本例中为x64。我正在使用Windows安装程序来安装该应用程序。

我遇到的第一个问题是c ++ dll在安装时没有正确注册,程序无法访问它。我通过将c ++项目添加到解决方案中来解决这个问题。

有一段时间这个工作正常,所有东西都正确安装,但是当我尝试构建时,我开始收到以下警告:

  

项目中.NET Framework的目标版本与.NET Framework启动条件版本“.NET Framework 3.5”不匹配。更新.NET Framework启动条件的版本以匹配高级编译选项对话框(VB)或应用程序页面(C#,F#)中的.NET Framework的目标版本。

如果我尝试忽略警告,则无法安装设置。经过一番搜索,我发现c ++项目是在.NET 4.0中构建的,而我的解决方案是使用.NET 3.5。我尝试将我的解决方案更改为4.0,但由于某种原因它停止工作,所以我将c ++更改为3.5。

这适用于几个版本,但后来我开始收到以下错误:

Error: LNK1104 cannot open file 'mfc90.dll'. 

我将文件添加到Additional Dependencies部分,但是发生了另一个链接错误(mfcs90.dll),当添加该文件时,我遇到了x86 x64冲突。

我不确定为什么这些解决方案会工作一段时间然后停止,我似乎无法在任何有效的步骤中找到解决方案。如果有人看到过类似的东西,那么我们将非常感激。

1 个答案:

答案 0 :(得分:4)

为了包含Microsoft运行时dll,您不应该只是在应用程序目录中包含dll。当dll具有各种依赖关系并且您可能遇到不同的冲突和版本问题时,这将无济于事。

我建议为您的应用程序安装运行时dll的方法是在MSI中包含官方合并模块。

有关重新分发运行时库的选项,请参阅以下链接:

http://msdn.microsoft.com/en-us/library/ms235316(v=vs.90).aspx

相关问题