我有一个有点奇怪的问题,我似乎无法深入了解。我们有一个主要是非托管的 C++ 应用程序,它已经存在了一段时间,因此使用许多不同版本的 Visual Studio 构建,并定期更新到当前版本的 Visual Studio。
我现在遇到了以下问题:
- 在 VS2010 中,我在现有解决方案中添加了两个新项目。这两个新项目都是 DLL,一个是用普通的非托管 C++ 构建的,它是使用 C++ 和 C++/CLI 的混合构建的,因此是用 CLR 支持 (/clr) 构建的。第二个 C++/CLI DLL 应该由系统的其他几个组件使用
- 使用属性 -> 通用属性 -> 框架和引用,我将两个新的 DLL 作为依赖项添加到第三个 DLL。第三个 DLL 对 .NET 一无所知,并且是在纯本机、非托管 C++ 中实现的。新的 DLL 在依赖项设置中正确显示,并且新的引用在解决方案的构建顺序受到影响(正确)的意义上起作用,但由于某种原因,仅将普通本机 C++ DLL 的导入库添加到引用这两个库的 DLL 的链接器命令行。第二个,混合库生成一个导入库,但是 VS2010 没有将导入库添加到链接器命令行,这可以预见会导致几个未解析的外部符号。
- 似乎触发此行为的一个设置是构建具有公共语言运行时支持的 DLL,因为库的所有其他设置都是相同的。
我目前有解决此问题的方法-我只是将导入库添加为手动依赖项-但我想知道是否有人遇到过此问题,以及是否有办法在没有解决方法的情况下使此功能按预期工作?