我创建了一个大型Visual C++ 10.0项目,该项目在ms Studio和“特殊” Visual Studio命令提示符下都可以使用msbuild和vcxproj文件很好地构建。
但是,此项目需要由不具有vs ide的计算机编译,而仅具有msbuild工具和vc++ 10.0运行时文件。
问题是vcxproj(由vs ide创建)文件包含对诸如Microsoft.Cpp.Default.props
和Microsoft.Cpp.targets
之类的文件的引用,如果没有Visual Studio,这些文件显然将无法在计算机中使用。
由于所有的compile和link命令行选项均可用且已修复(无需进行任何更改),那么如何使用这些选项创建新的vcxproj文件来实现项目的编译和链接呢?
最佳答案
我终于能够在“干净”的计算机上进行一些测试。结果如下:
首先,我从http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17718安装了.NET Framework 4.0。伴随它,MSBuild 4.0也被自动安装。当我尝试编译时,出现以下错误:error MSB4019: The imported project "H:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
这意味着需要额外的文件来编译vcxproj,并且这些文件丢失了。请注意,手工编写的(而不是VS IDE编写的)简单项目文件应该可以编译而不会出现问题,因为它们不包含对这些文件的引用(我没有对此进行一定的测试)。
接下来,我从http://www.microsoft.com/download/en/details.aspx?id=8442安装了Windows SDK 7.1。关于丢失文件的错误消失了,但是我得到了一个新文件。这个新错误(以及我克服它的方法)在http://www.damirscorner.com/CommentView,guid,9121bd6b-876c-4051-8487-de1b95a7e919.aspx中进行了描述。
成功完成上述操作后,我可以在没有vs2010的计算机上构建vcxproj文件。