Clarion 11, Unconditional Generation doesn't create new EXE/DLLs for unchanged APPs

Jeff, have you tried turning off quiet mode in the ClarionProperties.xml? Maybe a message/error is being suppressed.

Hi Rick - No matter what your output settings, you get the same message.

This is with ā€œDiagnosticā€, for example:

image

Quiet mode is a different thing. It is a setting for the IDE that suppresses some .net errors that SV decided shouldnā€™t be displayed to the end-user.
Sometimes those errors are actually useful when a problem is occurring but you never know they happened.

Go to the Clarion configdir (%appdata%\softvelocity\clarion\c11) and edit ClarionProperties.xml.
Search for QuietMode and change the value to False.
Save and re-load the IDE and do your build again.
Be sure to edit ClarionProperties.xml when the IDE is closed.
Iā€™m not saying it will solve the problem, but you might get some additional messages.

Thanks a lot @Rick_UpperPark :slight_smile:

Now I get an exception window with this. That will be helpful.

Thanks again.

Clarion Version : 11.1.0.13815
.NET Version         : 4.0.30319.42000
OS Version           : Microsoft Windows NT 6.2.9200.0
Current culture      : English (United States) (en-US)
Working Set Memory   : 626244kb
GC Heap Memory       : 300580kb



Exception Type: System.NullReferenceException



Exception Type: System.NullReferenceException

Exception thrown: 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevel(ProjectInSolution project, SolutionParser solution, Dictionary`2 projectsByDependencyLevel)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevel(ProjectInSolution project, SolutionParser solution, Dictionary`2 projectsByDependencyLevel)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevels(SolutionParser solution, Dictionary`2 projectsByDependencyLevel)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.CreateSolutionProject(SolutionParser solution, Project msbuildProject, BuildEventContext projectBuildEventContext, String wrapperProjectToolsVersion, Engine parentEngine, String solutionProjectCache)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.Generate(SolutionParser solution, Project msbuildProject, String toolsVersionOverride, BuildEventContext projectBuildEventContext)
   at Microsoft.Build.BuildEngine.Project.Load(String projectFileName, BuildEventContext buildEventContext, ProjectLoadSettings projectLoadSettings)
   at ICSharpCode.SharpDevelop.Project.MSBuildEngine.BuildRun.LoadProject(Engine engine, String fileName)
   at ICSharpCode.SharpDevelop.Project.MSBuildEngine.BuildRun.PrepareBuild()
   at ICSharpCode.SharpDevelop.Project.MSBuildEngine.BuildRun.RunMainBuild()

hopefully something to work from.
Was there a post previously about the version of msbuild on the system causing a problem?

From those results Iā€™d go through the cwproj and look for something odd.

I dont turn any message off on a program because vmware has bit me enough times.

I turned off quiet mode and now I get an exception too:

Clarion Version : 11.1.0.13855
.NET Version         : 4.0.30319.42000
OS Version           : Microsoft Windows NT 6.2.9200.0
Current culture      : English (United States) (en-US)
Working Set Memory   : 248256kb
GC Heap Memory       : 13650kb

Exception Type: System.NullReferenceException

Exception Type: System.NullReferenceException

Exception thrown: 
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevel(ProjectInSolution project, SolutionParser solution, Dictionary`2 projectsByDependencyLevel)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevel(ProjectInSolution project, SolutionParser solution, Dictionary`2 projectsByDependencyLevel)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.AssignDependencyLevels(SolutionParser solution, Dictionary`2 projectsByDependencyLevel)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.CreateSolutionProject(SolutionParser solution, Project msbuildProject, BuildEventContext projectBuildEventContext, String wrapperProjectToolsVersion, Engine parentEngine, String solutionProjectCache)
   at Microsoft.Build.BuildEngine.SolutionWrapperProject.Generate(SolutionParser solution, Project msbuildProject, String toolsVersionOverride, BuildEventContext projectBuildEventContext)
   at Microsoft.Build.BuildEngine.Project.Load(String projectFileName, BuildEventContext buildEventContext, ProjectLoadSettings projectLoadSettings)
   at ICSharpCode.SharpDevelop.Project.MSBuildEngine.BuildRun.LoadProject(Engine engine, String fileName)
   at ICSharpCode.SharpDevelop.Project.MSBuildEngine.BuildRun.PrepareBuild()
   at ICSharpCode.SharpDevelop.Project.MSBuildEngine.BuildRun.RunMainBuild()

Cant you see what the problem is then? :grinning:

Pretty sure thatā€™s the carburator :slight_smile:

Something about a null reference (which is useful), but I am wrestling with the ā€œwhereā€ too.

Email those exception logs to SV support and see what they have to say.

1 Like

It must know where its going wrong because its thrown the error out for a startā€¦

I myself canā€™t make much of that error, but I did send it to SV yesterday, as I had been emailing them about this issue. No response yet but when I get it I will let you all know.

I suspect the error and it is just a guess that an empty reference between tables was left.

Do you mean a table reference in the Dictionary?

Just to remind you, everything works fine when I do Generate and Make with only one Application selected. One after another, everyone compiles completely with no error. But if I select two or more and press Generate and Make, I get the exception at the very end of the process, right about at the point it would be creating the exe or dll.

The ā€œreferenceā€ is in regard to something in the .SLN. Not Clarion code. I am pretty sure the Clarion compiler doesnā€™t get the opportunity to run when this happens.

Iā€™m not saying this would be helpful, but I guess you could adapt from this https://clarionhub.com/t/msbuild-example-for-clarion/274

Try try something similar to the following, replacing what you need for your setup.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "F:\Playground\GetExeName\GetExeName.sln" /p:ClarionBinPath="C:\Clarion\Clarion11.1\bin" /p:NoDependency="true" /p:Configuration="Release" /p:CopyCoreFiles="true" /target:Build /verbosity:diagnostic > validation_log.txt

I think you can also substitute the .sln (solution file) with a .cwproj (project file) if you only want to validate or build a single project.

You should then get a detailed log that may point you to the fix.

Good Luck.
Mark

It is not clear to me if the error is thrown by the compiler or the generator.
It seems that it is the generator associated with the template engine.

For me, the generator is causing the problem, not the compiler. But thatā€™s just my opinion. Itā€™s safer or more likely that the generator drags garbage than the compiler.

@Gustavo_Saracca

It maybe, but obviously the UHE points to the MSBuild process, which is why I posted a possible way of finding out more detail from MSBuild.

To me, and not having the SLN and CWPROJ files to look at, their could be a corrupted or malformed Solution/Project File.

I have not had this specific issue, but when I have had issues before I have had to resort to removing an app from the solution. Deleting itā€™s CWPROJ, then add it back to the solution which recreates the CWPROJ.

Mark

1 Like