0

这是我今天下午遇到的一个奇怪的问题……我有一个混合模式库,这是我不久前制作的,它在 VS2008 上构建得很好。我正在转换到 VS2010,并尝试使用 VS2010 IDE 构建这个库。正如所料,IDE告诉我解决方案需要转换为VS2010,我让它去做......转换没有错误。我去构建库,似乎存在构建顺序问题,或者构建过程无法从托管代码中识别出非托管代码。(例如...当引入托管标头时,我看到一个错误:cannot convert int to System::String^其中有一个类方法将 aSystem::String^作为其参数之一,并将成员变量设置为其值)。

好的,现在退后一步,回到转换之前的解决方案/项目文件。打开 VS2010 命令提示符并使用 MSBuild 尝试构建解决方案,而无需先进行转换。一切正常。

? 嗯?

项目文件中显然有一些变化,但是什么?为什么 IDE 无法在不转换项目文件的情况下构建项目,而 MSBuild 却不咳嗽就直接通过它们?显然,我希望能够使用 IDE 编辑我的源代码——有没有其他人有过类似的经历或听说过这个问题?关于如何解决它的任何想法?

4

1 回答 1

0

您是否将转换后的项目的设置与 VS2010 中新创建的设置进行了比较,并检查了哪些差异?

右键单击项目,转到属性,然后检查“平台工具集”之类的内容,并确保将其设置为“v100”,并且在同一页面上启用了“公共语言运行时支持”等。与新的比较工作项目。

您还可以右键单击该项目,将其卸载,再次右键单击并编辑“vcxproj”文件,看看那里是否有任何遗漏/错误。

如果一切都失败了,我会创建一个新项目并手动复制所有代码,如果这是一个转换问题,那么这肯定可以工作。

这些链接可能会有所帮助:
将 C++/CLI 项目迁移到 Visual Studio 2010
将 C++ 项目从 VS2008
迁移到 VS2010 将 C++/CLI 项目从 VS2008 迁移到 2010

于 2012-08-13T17:09:00.343 回答