我注意到Custom Build Steps
在我的Visual Studio 2013中停止工作。 CMAKE生成的ZERO_CHECK不起作用。我嘗試了一切從Troubleshooting Build Customizations但沒有任何幫助。爲什麼自定義構建步驟在VS2012中工作,但在VS2013中不起作用?
我創建簡單的C++控制檯應用程序,改變項類型的ReadMe.txt從text
到Custom Build Tool
,並進入簡單的命令來Command Line
。
@echo on
copy %0 test.bat
del c:\1.txt
在項目文件中,它看起來像:
<ItemGroup>
<CustomBuild Include="ReadMe.txt">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">@echo on
copy %0 test.bat
del c:\1.txt</Command>
</CustomBuild>
</ItemGroup>
在像預想的Visual Studio 2012的一切工作,創建的文件test.bat的,文件c:\ 1.txt的刪除。但在Visual Studio 2013中它不起作用。 的Visual Studio 2013的輸出:
1>Target "ComputeCustomBuildOutput: (TargetId:28)" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets" from project "D:\Projects\Projects\VS2013Test\CppConsole2012\CppConsole2012\CppConsole2012.vcxproj" (target "CustomBuild" depends on it):
1>Task "CreateItem" skipped, due to false condition; ('%(CustomBuildDirsToMake.OutputFileToTool)'!='') was evaluated as (''!='').
1>Task "MakeDir" (TaskId:15)
1> Task Parameter:
1> Directories=
1> D:\Projects\Projects\VS2013Test\CppConsole2012\CppConsole2012\
1> AcceptableNonZeroExitCodes=
1> [email protected] on
1> copy %0 test.bat
1> del c:\1.txt
1> LinkObjects=true
1> Message=Performing Custom Build Tools
1> MinimalRebuildFromTracking=true
1> Outputs=SomeText;
1> TrackerLogDirectory=Debug\CppConsole2012.tlog\
1> TreatOutputAsContent=false (TaskId:15)
1>Done executing task "MakeDir". (TaskId:15)
1>Done building target "ComputeCustomBuildOutput" in project "CppConsole2012.vcxproj".: (TargetId:28)
1>Target "CustomBuild: (TargetId:29)" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets" from project "D:\Projects\Projects\VS2013Test\CppConsole2012\CppConsole2012\CppConsole2012.vcxproj" (target "_BuildGenerateSourcesAction" depends on it):
1>Done building target "CustomBuild" in project "CppConsole2012.vcxproj".: (TargetId:29)
的Visual Studio 2012輸出:
1>Target "ComputeCustomBuildOutput: (TargetId:41)" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets" from project "D:\Projects\Projects\VS2012Test\CppConsole2012\CppConsole2012\CppConsole2012.vcxproj" (target "CustomBuild" depends on it):
1>Task "CreateItem" skipped, due to false condition; ('%(CustomBuildDirsToMake.OutputFileToTool)'!='') was evaluated as (''!='').
1>Task "MakeDir" (TaskId:27)
1> Task Parameter:
1> Directories=
1> D:\Projects\Projects\VS2012Test\CppConsole2012\CppConsole2012\
1> AcceptableNonZeroExitCodes=
1> [email protected] on
1> copy %0 test.bat
1> del c:\1.txt
1> LinkObjects=true
1> Message=Performing Custom Build Tools
1> MinimalRebuildFromTracking=true
1> Outputs=SomeText;
1> TrackerLogDirectory=Debug\
1> TreatOutputAsContent=false (TaskId:27)
1>Done executing task "MakeDir". (TaskId:27)
1>Done building target "ComputeCustomBuildOutput" in project "CppConsole2012.vcxproj".: (TargetId:41)
1>Target "CustomBuild: (TargetId:42)" in file "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppCommon.targets" from project "D:\Projects\Projects\VS2012Test\CppConsole2012\CppConsole2012\CppConsole2012.vcxproj" (target "_BuildGenerateSourcesAction" depends on it):
1>Using "CustomBuild" task from assembly "Microsoft.Build.CppTasks.Common.v110, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>Task "CustomBuild" (TaskId:28)
1> Task Parameter:
1> Sources=
1> ReadMe.txt
1> AcceptableNonZeroExitCodes=
1> [email protected] on
1> copy %0 test.bat
1> del c:\1.txt
1> LinkObjects=true
1> Message=Performing Custom Build Tools
1> MinimalRebuildFromTracking=true
1> Outputs=SomeText;
1> TrackerLogDirectory=Debug\
1> TreatOutputAsContent=false (TaskId:28)
1> Task Parameter:BuildSuffix=
1> :VCEnd (TaskId:28)
1> Task Parameter:TrackerLogDirectory=Debug\ (TaskId:28)
1> Task Parameter:MinimalRebuildFromTracking=True (TaskId:28)
1> Task Parameter:TrackFileAccess=True (TaskId:28)
1> Task Parameter:ToolArchitecture=Native32Bit (TaskId:28)
1> Forcing rebuild of all source files due to missing command TLog "D:\Projects\Projects\VS2012Test\CppConsole2012\CppConsole2012\Debug\custombuild.command.1.tlog". (TaskId:28)
1> @echo on
1> copy %0 test.bat
1> del c:\1.txt (TaskId:28)
1> Performing Custom Build Tools (TaskId:28)
1> 1 file(s) copied. (TaskId:28)
1> Could Not Find c:\1.txt (TaskId:28)
1>Done executing task "CustomBuild". (TaskId:28)
1>Done building target "CustomBuild" in project "CppConsole2012.vcxproj".: (TargetId:42)
你可以看到VS2012日誌的一部分是在VS2013缺席:
1>Using "CustomBuild" task from assembly "Microsoft.Build.CppTasks.Common.v110, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>Task "CustomBuild" (TaskId:28)
...
1>Done executing task "CustomBuild". (TaskId:28)
你有哪個版本的CMake? – Antonio 2015-04-02 20:55:31
我有CMAKE版本3.2.1 – paramosh 2015-04-02 21:39:42
我只能說卸載並重新安裝Visual Studio 2013幫助了我。 (修理沒有幫助)。現在問題已解決。 – paramosh 2015-04-27 18:15:32