Visual studio 使用Build.exe和dirs/sources以及Visual Studio 2010/11构建

Visual studio 使用Build.exe和dirs/sources以及Visual Studio 2010/11构建,visual-studio,visual-c++,msbuild,build,Visual Studio,Visual C++,Msbuild,Build,有没有办法告诉VisualStudio2010(或VisualStudio11开发者预览版)使用源文件 是否有任何工具可用于将nmake/dirs/sources转换为MSBuild 我真的想在Visual Studio 11开发人员预览代码分析工具上使用一个非常古老的C++解决方案,它目前甚至不能接近VisualStudio./P>中的编译。 以下是众多源文件之一的示例: !INCLUDE $(INETROOT)\build\paths.all !INCLUDE $(INETROOT)\bui

有没有办法告诉VisualStudio2010(或VisualStudio11开发者预览版)使用源文件

  • 是否有任何工具可用于将nmake/dirs/sources转换为MSBuild

  • 我真的想在Visual Studio 11开发人员预览代码分析工具上使用一个非常古老的C++解决方案,它目前甚至不能接近VisualStudio./P>中的编译。 以下是众多源文件之一的示例:

    !INCLUDE $(INETROOT)\build\paths.all !INCLUDE $(INETROOT)\build\sources.all TARGETNAME=CSDWCtlg TARGETTYPE=DYNLINK DLLENTRY=DllMainCRTStartupCustom DLLDEF= USE_NATIVE_EH=1 NO_NTDLL=1 NTTARGETFILE0=$(EXPORTED_FILES) INCLUDES= \ $(INCLUDES); \ $(SDK_INC_PATH); \ $(ATL_INC_PATH); \ $(CSSTORAGE)\inc; \ $(CSSTORAGE)\util\inc; \ $(CSSTORAGE)\dbg; \ $(CSSTORAGE)\msg; \ $(CSSTORAGE)\intf\idl; \ $(CSSTORAGE)\ctlg; \ $(CSSTORAGE)\provider; \ $(CSSTORAGE)\dsproviders\inc\; \ $(CSCOMMON)\rockall4\Build\Rockall\Include; \ $(CSCOMMON)\rockall4\Code\Rockall\Interface; \ $(CSCOMMON)\kbase; \ $(CSCOMMON)\inc; \ # goes to both RC compiler and C compiler # RUN_WPP=$(SOURCES) -func:{LEVEL=Error}ErrorTrace(ERR,MSG,...) -func:{LEVEL=Debug}DebugTrace(DBG,MSG,...) C_DEFINES=$(C_DEFINES) /D_UNICODE /DUNICODE /DPROJ_METABASE /DCSTRACE_CSDWCTLG /D_CTLG_DIAGNOSTIC#1 USER_C_FLAGS=$(USER_C_FLAGS) -D_CTLG_DIAGNOSTIC=1 -GR -D_WIN32_WINNT=0x0500 -DOLEDBVER=0x0250 # check for 64-bit compatiblitly !if "$(PROCESSOR_ARCHITECTURE)"=="x86" USER_C_FLAGS = $(USER_C_FLAGS) /Wp64 !endif # The line below includes the common build flags. # It modifies the USER_C_FLAGS variable by appending the 'project' level flags. # Be sure to use the syntax USER_C_FLAGS=$(USER_C_FLAGS) 'flags' if you use USER_C_FLAGS after this include. !INCLUDE $(CSSTORAGE)\inc\userFlags$(DCRT).inc USE_MSVCRT=1 PRECOMPILED_CXX=1 PRECOMPILED_INCLUDE=pch.hpp PRECOMPILED_PCH=pch_hpp.pch PRECOMPILED_OBJ=pch_hpp.obj SOURCES=\ csdwctlg.rc \ pch.cpp \ dll.cpp \ crow.cpp \ ctlgdump.cpp \ ctlghandler.cpp \ ctlgobj.cpp \ ctlgobjaccess.cpp \ ctlgobjclsdef.cpp \ ctlgobjdefs.cpp \ ctlgobjget.cpp \ ctlgobjkeydef.cpp \ ctlgobjmemdef.cpp \ ctlgobjrel.cpp \ ctlgobjrow.cpp \ ctlgobjset.cpp \ ctlgobjtbl.cpp \ ctlgobjtbls.cpp \ ctlgobjtypedef.cpp \ ctlgobjview.cpp \ ctlgpersist.cpp \ ctlgresolve.cpp \ ctlgresolve2.cpp \ ctlgpartresolve.cpp \ ctlgaggrresolve.cpp \ ctlgfilterresolve.cpp \ ctlgvalidate.cpp \ expschema.cpp \ mbcatalog.cpp \ mbictlgchg.cpp \ schemamgr.cpp \ sqlpathtrans.cpp \ TARGETLIBS= \ $(DEFAULTLIBS) \ $(SDK_LIB_PATH)\ole32.lib \ $(SDK_LIB_PATH)\oleaut32.lib \ $(SDK_LIB_PATH)\uuid.lib \ $(SDK_LIB_PATH)\urlmon.lib \ $(TARGETPATH)\*\CSDWIntf.lib \ $(TARGETPATH)\*\CSDWUtil.lib \ $(SDK_LIB_PATH)\msi.lib \ $(TARGETPATH)\*\csrockall.lib \ $(TARGETPATH)\*\CSDWSrvrDLL.lib \ $(SDK_LIB_PATH)\Kernel32.lib \ $(SDK_LIB_PATH)\user32.lib \ $(SDK_LIB_PATH)\Advapi32.lib \ $(CRT_LIB_PATH)\oldnames.lib \ $(SDK_LIB_PATH)\atls$(DCRT).lib \ # For Binplacing MISCFILES= \ .\SCHEMA\* \ !包括$(INETROOT)\build\path.all !包括$(INETROOT)\build\sources.all TARGETNAME=CSDWCtlg TARGETTYPE=DYNLINK DLLENTRY=dllmaincrtstartupscustom DLLDEF= 使用_NATIVE_EH=1 否\u NTDLL=1 NTTARGETFILE0=$(导出的_文件) 包括=\ 美元(包括)\ $(SDK_INC_PATH)\ $(ATL_INC_PATH)\ $(CSSTORAGE)\inc\ $(CSSTORAGE)\util\inc\ $(CSSTORAGE)\dbg\ $(CSSTORAGE)\msg\ $(CSSTORAGE)\intf\idl\ $(CSSTORAGE)\ctlg\ $(CSSTORAGE)\provider\ $(CSSTORAGE)\dsproviders\inc\\ $(CSCOMMON)\rockall4\Build\Rockall\Include\ $(CSCOMMON)\rockall4\Code\Rockall\Interface\ $(CSCOMMON)\kbase\ $(CSCOMMON)\inc\ #转到RC编译器和C编译器 #运行_WPP=$(源)-func:{LEVEL=Error}ErrorTrace(ERR,MSG,…)-func:{LEVEL=Debug}DebugTrace(DBG,MSG,…) C_DEFINES=$(C_DEFINES)/D_UNICODE/DUNICODE/DPROJ_元数据库/DCSTRACE_CSDWCTLG/D_CTLG#u诊断#1 USER_C_FLAGS=$(USER_C_FLAGS)-D_CTLG_DIAGNOSTIC=1-GR-D_WIN32_WINNT=0x0500-DOLEDBVER=0x0250 #检查64位兼容性 !如果“$(处理器体系结构)”==“x86” 用户\u C\u标志=$(用户\u C\u标志)/Wp64 !恩迪夫 #下一行包括通用构建标志。 #它通过附加“项目”级别的标志来修改USER_C_FLAGS变量。 #如果在此包含之后使用USER_C_标志,请确保使用语法USER_C_标志=$(USER_C_标志)'FLAGS'。 !包括$(CSSTORAGE)\inc\userFlags$(DCRT).inc 使用_MSVCRT=1 预编译_CXX=1 预编译_INCLUDE=pch.hpp 预编译的\u PCH=PCH\u hpp.PCH 预编译_OBJ=pch_hpp.OBJ 来源=\ csdwctlg.rc\ pch.cpp\ dll.cpp\ crow.cpp\ ctlgdump.cpp\ ctlghandler.cpp\ ctlgobj.cpp\ ctlgobjaccess.cpp\ ctlgobjclsdef.cpp\ ctlgobjdefs.cpp\ ctlgobjget.cpp\ ctlgobjkeydef.cpp\ ctlgobjmemdef.cpp\ ctlgobjrel.cpp\ ctlgobjrow.cpp\ ctlgobjset.cpp\ ctlgobjtbl.cpp\ ctlgobjtbls.cpp\ ctlgobjtypedef.cpp\ ctlgobjview.cpp\ ctlgpersist.cpp\ ctlgresolve.cpp\ ctlgresolve2.cpp\ ctlgpartresolve.cpp\ ctlgargresolve.cpp\ ctlgfilterresolve.cpp\ ctlgvalidate.cpp\ expschema.cpp\ mbcatalog.cpp\ mbictlgchg.cpp\ schemamgr.cpp\ sqlpathtrans.cpp\ TARGETLIBS=\ $(默认libs)\ $(SDK\u LIB\u PATH)\ole32.LIB\ $(SDK\u LIB\u PATH)\oleaut32.LIB\ $(SDK\u LIB\u PATH)\uuid.LIB\ $(SDK\u LIB\u PATH)\urlmon.LIB\ $(TARGETPATH)\*\CSDWIntf.lib\ $(TARGETPATH)\*\CSDWUtil.lib\ $(SDK\u LIB\u PATH)\msi.LIB\ $(TARGETPATH)\*\csrockall.lib\ $(TARGETPATH)\*\csdwsrvrdl.lib\ $(SDK\u LIB\u PATH)\Kernel32.LIB\ $(SDK\u LIB\u PATH)\user32.LIB\ $(SDK\u LIB\u PATH)\Advapi32.LIB\ $(CRT\u LIB\u PATH)\oldnames.LIB\ $(SDK\u LIB\u PATH)\atls$(DCRT).LIB\ #用于装箱 杂项文件=\ .\SCHEMA\*\ 有什么建议吗

    更新:我找到了WDK的一部分。它用于驱动程序开发和测试。我不确定它是否对我必须做的事情(不是司机)有效,但我将尝试一下。

    我已经找到了WDK的一部分。它用于驱动程序开发和测试

    为了让工具完成转换,需要对源文件进行一些手动调整。它不是万能的,但有助于使事情步入正轨。

    我找到了WDK的一部分。它用于驱动程序开发和测试


    为了让工具完成转换,需要对源文件进行一些手动调整。它不是万能的,但有助于使事情步入正轨。

    我怀疑它会奏效。微软有各种各样的内部工具来实现这一点已经有一段时间了,我敢打赌这是其中一种工具的产品化版本。我过去成功地使用了内部版本。@NickNieslanik我使用nmake2msbuild.exe取得了一些成功,减少了许多编译器错误。这仍然不是100%,这是肯定的,但它似乎为我做了很多工作。很高兴听到。一般来说,微软的内部工具总是需要一些手动清理,所以我听说这是必需的,并不感到惊讶,但至少它在大部分方面都能帮到你。我怀疑它会起作用。微软有各种各样的内部工具来实现这一点已经有一段时间了,我敢打赌这是其中一种工具的产品化版本。我过去成功地使用了内部版本。@NickNieslanik我使用nmake2msbuild.exe取得了一些成功,减少了许多编译器错误。这仍然不是100%,这是肯定的,但它似乎为我做了很多工作。很高兴听到。一般来说,微软的内部工具总是需要一些手动清理,所以我并不惊讶于它是必需的,但至少它能让你在大部分的过程中做到这一点。