Good MSbuild log formatter? - visual-studio-2010

we are building a very large Visual C++ 2010 solution (about 150 projects, full build takes about an hour) on a build server (Jenkins) with MSBuild. Unfortunately when a project fails, it is difficiult to find out which and why, because the console log is so long and errors are hard to find.
Is there a nice msbuild log parser or msbuild logger that nicely lists all failed projects and the error messages? The best we've found so far is the Warnings Plugin but this is pretty much useless in many cases.

I find the Log Parser Plugin very useful, though you need to provide your own parser file (in /jobs/vs_parsing_rules). I use the following, which works well for msbuild
error /[Ee]rror *:/
error /Error on line/
error /error [CM]/
error /fatal error/
error /unresolved external/
error /[aA]ccess is denied/
error /aborted/
warning /[Ww]arning *:/
warning /[Ww]arning C/
warning /WARNING/
warning /Couldn't/
warning /Can't/
warning /Cannot/
warning /ld.*unsupported/
error /[uU]ndefined symbols/
warning /[rR]eferenced from/
warning /[nN]ot found/
warning /exit status/
warning /no symbols/
error /ERROR[^A-Za-z]/
info /INFO/
start /BUILD/

Another useful parsing rules that works for msbuild:
# Divide into sections based on project compile start
start /^------/
# Compiler Error
error /(?i)error [A-Z]+[0-9]+:/
error /MSBUILD : (?i)error :/
error /\(\d+(,\d+)?\): (?i)error [A-Za-z]*:/
# Compiler Warning
warning /(?i)warning [A-Z]+[0-9]+:/

Related

Error CS2007: Unrecognized option: /analyzerconfig

I have a Unity project which I use Roslyn for Code Analysis and I found that you can get the warnings and errors report from console using msbuild.
In the PC I have VS 2019 version 16.6.3, it gave the following error that I will comment below and updated to version 16.11.9, thinking it was the incompatibility and still gets the error. I tried running the command described below on other PCs with other versions of VS and it works fine, but I have not been able to identify what makes the command work well.
Command:
By running the following line in Developer Command Prompt for VS 2019:
msbuild ScriptsAssembly.csproj /p:RunCodeAnalysis=true /t:Clean;Rebuild
I expect to see the total number of warnings for the project and zero errors with successful execution like this:
Instead I get the following error:
CSC : error CS2007: Unrecognized option: '/analyzerconfig:C:\Users\...\Documents\...\...\UnityProject\.editorconfig' [C:\Users\...\Documents\...\...\UnityProject\SimpleJSON
.csproj]
Done Building Project "C:\Users\...\Documents\...\...\UnityProject\SimpleJSON.csproj"
(default targets) -- FAILED.
Done Building Project "C:\Users\...\Documents\...\...\UnityProject\ScriptsAssembly.csp
roj" (Clean;Rebuild target(s)) -- FAILED.
Build FAILED.
...
"C:\Users\...\...\...\...\UnityProject\Project.csproj" (Clean;Rebuild target) (1) ->
"C:\Users\...\...\...\...\UnityProject\SimpleJSON.csproj" (default target) (2:3)
->
(CoreCompile target) ->
CSC : error CS2007: Unrecognized option: '/analyzerconfig:C:\Users\...\Documents\...\...\UnityProject\.editorconfig' [C:\Users\...\Documents\...\...\UnityProject\SimpleJS
ON.csproj]
1 Warning(s)
1 Error(s)
Time Elapsed 00:00:00.91
What I expect to see is a thousand warnings, instead of 1.
I don't know if I am missing a package to install in VS. I have seen the error that the compiler message mentions in the Microsoft documentation, but it doesn't help me much.
Any idea, or help is welcome.

Internal compiler error when UseDotNetNativeToolchain is true

I have a UWP app that compiles successfully if I have UseDotNetNativeToolchain off. But when I turn it on, it gives me the cryptic error:
Internal compiler error: Object reference not set to
an instance of an object. UWPApp C:\Program Files
(x86)\MSBuild\Microsoft.NetNative\x86\ilc\IlcInternals.targets 887 Build
This is all it gives me. What could be causing this? How can I drill down on this.
Using VS2015
Here is the full build output in case that helps:
https://gist.github.com/shannah/e24fe8456313fb9ad98577c9a812f357
The solution to this problem was to disable optimization in a few assemblies I was using in the Default.rd.xml file. E.g.
<Assembly Name="IKVM.OpenJDK.Core" Dynamic="All" DoNotInline="true" DoNotOptimize="true"/>

F# Microsoft.ParallelArrays not defined

So I downloaded and installed Microsoft Accelerator v2 to use ParallelArrays. I have referenced it in my project but when I try and execute the code from the module in a script file I get:
"The namespace 'ParallelArrays' is not defined
I have followed the instructions on this post:
Microsoft Accelerator library with Visual Studio F#
I've added a reference to the managed version "Microsoft.Accelerator.dll" to my F# project and then added the native "Accelerator.dll" as an item in my solution and set it's 'Copy To Output Directory' to Copy Always.
Still getting the FSI error and inline error in my script file on the '#load ...' line, however the solution builds fine, and no error in the module file.
Any ideas on what I'm missing? I'm sure it's something stupid.
Thanks,
Justin
UPDATE
I tried mydogisbox's advice, which got rid of the error above, but now when I run the code in the .fsx file I get this error instead:
--> Referenced 'F:\Work\GitHub\qf-sharp\qf-sharp\bin\Debug\Microsoft.Accelerator.dll' (file may be locked by F# Interactive process)
[Loading F:\Work\GitHub\qf-sharp\qf-sharp\MonteCarloGPU.fs]
error FS0192: internal error: F:\Work\GitHub\qf-sharp\qf-sharp\Accelerator.dll: bad cli header, rva 0
UPDATE 2
So the bad header error has dissapeared, but now I get this instead:
Microsoft.ParallelArrays.AcceleratorException: Failure to create a DirectX 9 device.
at Microsoft.ParallelArrays.ParallelArrays.ThrowNativeAcceleratorException()
at Microsoft.ParallelArrays.DX9Target..ctor()
at <StartupCode$FSI_0002>.$FSI_0002_MonteCarloGPU.main#() in F:\Work\GitHub\qf- sharp\qf-sharp\MonteCarloGPU.fs:line 14
Stopped due to error
I found this thread on MSDN however the answers proposed as fixes on that thread barely even relate to the question.
http://social.msdn.microsoft.com/Forums/vstudio/en-US/98600646-0345-4f62-a6c5-f03ac9c77179/ms-accelerator?forum=csharpgeneral
My Direct X version is 11, and I imagine that will suffice, however I tried installing DX9 however, it tells me that a newer version is detected therefore cant install.
There are special directives for referencing dlls from fsi. The #load directive loads the .fs file only. You need to use the #r directive to reference the file. You can either use the full path of the file or you can use #I to include the path to the file. More details here. Keep in mind that fsi is completely independent of your project, so all references in your project must be duplicated in fsi for it to access the same types.

Error while building dll for resource file --error CVT1100: duplicate resource. type:DIALOG, name:4159, language:0x0409

I trying to create dll from resource files.
I have more than 1 .rc file and want to include in dll.
but i am getting following error
error CVT1100: duplicate resource. type:DIALOG, name:4159, language:0x0409
error LNK1123: failure during conversion to COFF: file invalid or corrupt.
I searched a lot but couldn't solved yet.
I may have had the same problem in my project (but I used Visual Studio 2008).
In my case the problem was that in "Project Properties/Linker/Manifest File/Generate Manifest" when in
- "Debug" mode the setting should be "No" (setting to "Yes" generates exactly the same error)
- but when in "Release" mode the setting should be "Yes".

LNK1000: Internal error during IMAGE::BuildImage

I have a problem with linking in VC++ 2010. When I compile in the debug mode it's ok, but in the release mode I regular receive the error "LNK1000: Internal error during IMAGE::BuildImage".
What am I doing wrong?
It began work as soon as I have changed "Whole program optimization" option from "Use Link Time Code Generation" to "Profile Guided Optimization-Instrument".
I encountered the same error. The problem in my case was that I was "playing" with the configuration properties (Project Properties -> Configuration Properties -> General)
The 'Configuration Type' of the project was 'Dynamic Library (.dll)', but the 'Target Extension' was .lib instead of .dll.
April 2020 update
Issue with MSBuild and Docker for Windows was fixed in MSBuild 16.5 (source), so if still seeing that - just update MSVS/MSBuild to the latest version
Original answer
Check for working C compiler: C:/BuildTools/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.16/Modules/CMakeTestCCompiler.cmake:60 (message):
The C compiler
"C:/BuildTools/VC/Tools/MSVC/14.24.28314/bin/Hostx64/x64/cl.exe"
is not able to compile a simple test program.
......
LINK : fatal error LNK1000: Internal error during IMAGE::BuildImage.FinalPhase
I was getting this error when I was running cmake in Docker for Windows inside mounted Docker volume. Solution is to copy the workspace to local Docker filesystem.
In vs2019 it works for me:
Project->Property pages->Optimization->Link Time Code Generation, change from "Use Link Time Code Generation" to "Profile Guided Optimization-Instrument"

Resources