1

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

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

有一段时间这有效,并且一切都正确安装,但是当我尝试构建时开始收到以下警告:

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

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

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

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

我将文件添加到附加依赖项部分,但随后出现另一个链接错误(mfcs90.dll),添加该文件时,我遇到了 x86 x64 冲突。

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

4

1 回答 1

4

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

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

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

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

于 2013-04-04T18:41:48.487 回答