我一直在使用OpenCover作为项目的一部分,我需要介绍的其中一个软件是针对.NET 4.5.1。但是,OpenCover的目标是.NET 4.0。这导致了我们尝试测试的软件出现问题,因为它希望运行.NET 4.5.1并且OpenCover似乎让它认为它运行的是.NET 4.0。
我已经下载了OpenCover源代码,试图将其自己更新为.NET 4.5.1,但我甚至无法在.NET 4.0中构建它。发现here的文档不够清晰,无法帮助我自己构建它。所以,我的问题的主要部分是,是否有任何人有从源代码构建OpenCover的经验,你能否向我提供一套明确的如何操作的说明?到目前为止,我所尝试过的研究和多次尝试都没有产生任何结果。此外,如果有人试图将OpenCover更新为.NET 4.5.1,我有兴趣听取您在那里收集的任何信息。
编辑:
这里有更多关于我为建立它所做的事情的信息:
我运行了源代码中包含的Build.bat文件。它运行良好几秒钟,然后输出:
"建立失败
外部程序失败:C:\ Windows / Microsoft.NET / Framework64 / v4.0.30319 / MSBuild.exe(返回代码为1)"
希望这能让您更深入地了解我遇到的问题。
编辑2:
感谢Patrick Hofman,我指出了正确的方向并设法将MSBuild.exe的版本更改为正确的版本并停止了该错误。不幸的是,我现在遇到了某种链接错误,其全文可以在下面的Patrick答案的评论中的pastebin中看到:
[exec] "C:\Users\scogan\Source\Repos\OpenCover\main\OpenCover.Test.Profiler\OpenCover.Test.Profiler.vcxproj" (Rebuild target) (15:2) ->
[exec] (Link target) ->
[exec] gtestd.lib(gtest-all.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' in ExceptionHandler.obj [C:\Users\scogan\Source\Repos\OpenCover\main\OpenCover.Test.Profiler\OpenCover.Test.Profiler.vcxproj]
[exec] gtest_maind.lib(gtest_main.obj) : error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' in ExceptionHandler.obj [C:\Users\scogan\Source\Repos\OpenCover\main\OpenCover.Test.Profiler\OpenCover.Test.Profiler.vcxproj]
[exec] C:\Users\scogan\Source\Repos\OpenCover\main\bin\Debug\OpenCover.Test.Profiler.exe : fatal error LNK1319: 2 mismatches detected [C:\Users\scogan\Source\Repos\OpenCover\main\OpenCover.Test.Profiler\OpenCover.Test.Profiler.vcxproj]
答案 0 :(得分:2)
因此,日志中的实际错误消息是:
错误MSB8020:找不到v120(Platform Toolset ='v120')的构建工具。要使用v120构建工具进行构建,请单击“项目”菜单或右键单击解决方案,然后选择“更新VC ++项目...”。使用v120构建工具安装v120进行构建。
我猜你在安装Visual Studio时没有安装VC ++工具。