0

My compiling experience - github version as of July 23, 2019.

burque505 3 months ago updated 2 months ago 16

I would like to share how I got Warewolf to compile and run with Visual Studio 2019. I don't claim this is a best practice, it just worked.

  • I compiled the Server.sln solution as suggested. Once I had the dependencies restored, it compiled without error, although not without warnings.
  • I then tried to compile Studio.sln, which made it almost all the way through, but failed in the Tests section due to a dependency on TestBase.dll. I did not clean the Studio.sln solution.
  • I compiled AcceptanceTesting.sln, which provided the missing dll.
  • I then rebuilt Studio.sln, which now compiled without error.
  • I did a test run (not as suggested by the instructions online) by starting \Dev\Dev2.Server\bin\Debug\Warewolf Server.exe from the command line. It threw a System.IO.FileLoadException. On further investigation, it appears there is a dependency on IronPython 2.5.0, which I did not have installed. I installed this version of IronPython from a downloaded .msi, and recompiled the server. It now started without error.
  • I was then able to start Studio by running \Dev\Dev2.Studio\bin\Debug\Warewolf Studio.exe from the command line.
  • As everything appeared to work, I then compiled Web.sln. The npm installation took a very long time, but it installed.
  • After restarting Server and Studio, everything still works.

Notes and questions:

1) All the solutions I compiled reference VS 2019 (i.e. 16.0). Others reference VS 2019 (i.e. 15.0).

2) Although I have VS 2017 installed side-by-side, I have not attempted to install the solutions that reference that version of VS. My questions are - do I need these other solutions? Can I compile Release.sln without them?

Regards,

burque505

web studio server installer

Hi Burque, thank you for sharing!

Is the installation still stable? 

I'm thinking of creating an auto installer. Did you create one? Some solutions are using Bitnami for it.

The ideia is create a fast auto install package to onpremise clients. Any ideia?

Hi Alberthan, I'm experiencing odd problems with MS Com objects, but I'm not certain that has anything to do with Warewolf or the version. I haven't noticed any instability yet, though, in general.


As far as installers, I've been meaning to try  SSESetup but haven't done it yet.

Regards,

burque505

I took a look into SSESetup. It looks promising. 

Do you know if it's can compile the soffware or just create a installer window?

Please, keep us informed about your experiments.

Regards,

OK, as the one who builds Warewolf everyday for a living maybe I can explain some of this weirdness.

  • I am aware of the compile warnings when compiling the server solution. My plan is to ignore all the warnings at the file level and then have the dev team un-ignore all files they touch and to fix all the warnings on that file. I believe this will gradually but consistently improve code quality over the parts of the code that need it most.
  • The studio.sln is not used by the build engine and therefore problems with it are not immediately detected. It does get used by developers such as yourself so issues with it do tend to get back to me eventually and it does get maintained. The prefered solution right now is AcceptanceTesting.sln, which contains all relevant projects.
  • Due to the principle of least privilage, running \Dev\Dev2.Server\bin\Debug\Warewolf Server.exe requires administrator permissions. Try right clicking the .exe file and selecting "Run as administrator" to avoid file load errors due to not having enough permissions to load dependencies.
  • Any project not in the AcceptanceTesting solution is irrelevant to Warewolf and therefore not kept up to date. You can expect any out of date projects to reference out of date dependencies. I don't actually have a plan for those old projects that are no longer included in the AcceptanceTesting solution, if they are in the web.sln then they will need to be added to AcceptanceTesting and if they are not in any solution they need to be removed. Personally, I'd like to deprecate AcceptanceTesting solution and introduce a new solution for shared code, code that is used by both server and studio.
  • Release is another solution that is not automatically built and sometimes takes longer to fix than the default solution (AcceptanceTesting). It contains no test assemblies and all server and studio projects. FYI: as an optimisation, test assemblies are never compiled in release config, this goes for all solutions.

Thank you, Ashley, for the detailed response.

  • I had changed Warewolf Server.exe to run as administrator right away, before starting for the first time.
  • I didn't see a mention of my IronPython issue, which was easy enough to solve, and perhaps most people don't have it.
  • I haven't yet tried to compile the Release, and probably won't until I get my COM issues resolved. Primarily, due to the fact that there is no filter function when selecting a class, it can take me up to five to fifteen minutes to select the Word Application class selected (just try scrolling through all those classes without hitting one by accident, thus having to deleted the dotnetdll and start all over again. I just scrolled through four hundred classes one by oneand had it bail on me, so I am, for moment waiting until I get a working example posted, requested elsewhere before I undertake this exercise again :)).

Filter, please! Thanks :)

I needed to install .NET Framework 4.8 before installing. Duh . . . Now working on Win10 build 1903, VS Studio is - I don't know, the latest as of August 31, 2019.

So far, I built Warewolf.Language.Parser first just to be safe, then everything in Server.sln built fine,

Only got these warnings:

I got rid of the 'FSharp.Core' warning by manually adding a reference. The 'Oracle.ManagedDataAccess' warnings do not got away, even though the DLLs are present in the folders where they should be and the references above were manually added.

The server, however, will not start. I get no error messages, it simply exits.

As you might rightly imagine, trying to run studio without the server running yields this:

No IronPython error messages on this build, but then again, no error messages at all. I tried installing IronPython to see if that might do the trick, but, well, no.

Regards,

burque505

Same results with Win7 compile.

Running "Werewolf Test Agent.exe" gets the server to start, but doesn't allow a Studio start (Win7 attempt here).

Uninstalling completely. As following the instructions provided on the Warewolf website doesn't result in a working installation (although it did before the last update, as described above, albeit with some workarounds), I'll revisit this when and if someone responds to it.

Thanks.

burque505

Sorry burque505,

Which IDE are you using to work with Warewolf source code? The IronPython dependency should be resolved by your IDE's NuGet plugin just like all the other NuGet dependencies. If your IDE failed to resolve that one dependency it might cause that error. It's great that you fixed some warnings, would you mind opening a pull request to share your code changes with us? As for diagnosing Warewolf server startup there are a number of places Warewolf server publishes diagnostic errors and warnings:

  • First, check the event viewer.
  • See the server log file at "C:\ProgramData\Warewolf\Server Log\wareWolf-Server.log"
  • Running the Warewolf Server as a console window can show messages that are logged to the console output stream that might not have been logged elsewhere. For example (run from repository root directory):
    • cmd /k  "%~dp0Dev\Dev2.Server\bin\Debug\Warewolf Server.exe"

Ashley, thanks for responding. I appreciate it. I'll post my results piecemeal, as my Win7 development box is old and slow (kind of like its owner).


  • VS 2019 Community Edition, v16.2.3, .NET framework 4.8.03761.
  • This time around, I have compiled Dev2.Development.Languages firs to make sure IronPython wasn't getting left out. It compiled, although with 308 warnings (not surprising), and the IronPython modules are in the correct place. I think I can rule that out. I cleaned it, and will now compile AcceptanceTesting.
  • I will come back to this in about 15 minutes, which is what it takes to compile on this old machine. That should give me a server to start.

(As a side note here, after compiling AcceptanceTesting I have 4 instances of "Warewolf Server.exe".)

  • I will now run cmd /k "%~dp0Dev\Dev2.Server\bin\Debug\Warewolf Server.exe" from the command line:
  • "System cannot find the path specified."
  • Now running C:\Warewolf>cmd /k "Dev\Dev2.Server\bin\Debug\Warewolf Server.exe".
  • Exits without any messages.
  • Server log, however, is more informative.

2019-07-22 22:17:11,544 ERROR - [Warewolf Error] - Error Starting Server
System.IO.FileLoadException: Could not load file or assembly 'IronPython, Version=2.7.5.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'IronPython, Version=2.7.5.0, Culture=neutral, PublicKeyToken=7f709c5b713576e1' ---> System.IO.FileLoadException: Could not load file or assembly 'IronPython, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'IronPython, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1'

Any suggestions? I am going to muck around a little to see if I can fix it.

Regards,

burque505

In Dev2.Server.bin.Debug, IronPython.dll properties:

And then IronPython.Modules.dll:

Regards,

burque505

The code formatting is broken, I can't paste in any code, so I'll have to type this in - line 181 in Dev2.Server.csproj:

<Reference Include="IronPython.Modules, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL">

But the supplied DLLs are all 2.7.3.100.

Deleted everything, changed the above to <Reference Include="IronPython.Modules"> in Dev2.Server.csproj to see if there's any joy. Recompiling AcceptanceTesting.sln now.

No luck.

What's the chmod +x command in there for? Windows bash?

Compiling Web.sln:

Flailing around for a solution, I just ran Warewolf Test Agent.exe out of the Binaries folder (although it seems to exist everywhere) - after a very long delay, both the Server and Studio started, giving compile dates as per usual. Both died right away; I assume this is the Test Agent killing them. Maybe. I'll look at logs. Or maybe not.

I have just now manually restarted the "Warewolf Server" service, and I'll see if Studio runs.

There are now 34 different instances of "Werewolf Studio.exe" in the repository after building everything. This seems like overkill to me.

I just changed "Werewolf Studio.exe" to run as Admin, and Studio started. I can now manually start and stop the Werewolf Server, I suppose, which seems like a more sane approach than keeping the CMD window open to be able to stop it.

For tough builds, this is right up there! If I run into more snags related to installation, I'll post. If you wouldn't mind, which of the directories can I now delete? I'm assuming I don't need 34 copies of Werewolf Studio.exe :)


Regards,

burque505

Postscriptum (this forum won't even let me write "p.s" at the beginning of a line): Apparently removing the version related attributes for IronPython.Modules in Dev2.Server.csproj as stated above didn't hammer anything that I can immediately detect. No examples in this build, apparently, at least not how I built it.

Edit: No real joy here. Saving a microservice kills the Studio. Oh well . . . better luck next time. Back to the drawing board.