When you subscribe to the Source Code License, you get access to a zip file containing all the source code to build ECO and Modlr.
(compiled with C:\CapableObjectsWush\build\GetAndBuildCSharp.)
Minimum Needed
The minimum build would produce the runtime parts you often use: Eco.Interfaces, Eco.Handles, maybe Eco.Persistence, maybe Eco.LinqExtensions
You can build these - and run the designer and VS plugin from the standard install. This is the recommended approach.
Environment
Projects should be built with VS2019, even if named with other versions. Old versions may be built with VS2019 but may require an older IDE.
Full Build
1. Open Eco.VS2017.sln in VS2019.
2. Massage the delivery a bit in order to build:
3. Extract the .zip into your folder (creates ECO and Modlr)
In the subfolder Source:
Remove the reference to the missing file C:\YourDir\Stage\Temp\Eco.Interfaces\Configuration.csexp found in the Eco.Interfaces project - replace it with the renamed Configuration.cs(.noscriptbuild) located in'' source\Eco\Eco.Interfaces\. DOUBLE CHECK that the build action is Compile.
Focus first on building the Eco.Interfaces - everything uses this, so fix this first.
All projects try to sign their assembly with the snk key - ..\..\..\ecokey.snk. This key is not distributed - you will need to create your own local key. In the directory above Source, save the file ecokey.snk. You can create a key in project properties signing. Either remove signing per project or create your own key. (To learn more about assemblies, visit: https://learn.microsoft.com/en-us/dotnet/standard/assembly/)
If you remove the key, you cannot GAC the assembly and you will need to remove the build action that does the Gaccing. Source look for GacUtil in "$(ProjectDir)..\..\..\Xternal\DotNetSdk\v4.0\bin\Gacutil" You can make sure it exists to avoid changing projects.
4. Remove missing resource files from the project.
5. Remove unneeded PersistenceMapper-projects or install third-party drivers.
6. Build.
7. Find output in Start/Stage/Bin and Start/Stage/Modlr.
At this point, you should have the MDrivenFramework compiled.
(This error is not blocking and comes from the fact that the plugin is found in GAC but the assembly is not found in GAC.
Error CreatePkgDef : error : ProvideCodeBaseAttribute: Could not load specified assembly: 'Microsoft.IO.RecyclableMemoryStream' reason: Could not load file or assembly 'file:///C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Eco.Ide.VS\v4.0_7.0.0.11646__e16273f875fba65f\Microsoft.IO.RecyclableMemoryStream.dll' or one of its dependencies. The system cannot find the file specified. Eco.Ide.VS.VS2017
)
Do you need a design-time build? If yes, you need to make sure YOUR build is compatible with YOUR design:
1. Open Eco.Interfaces/Configuration.cs
2. Change the version build number to say: 1000, clean all, build all
3. Look up in GAC: C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Eco.Handles\v4.0_7.0.0.1000__2d9e0870895d5d61
The last numbers are the thumbprint of YOUR KEY. Paste it into Configuration.cs.
Your Configuration now looks like this:
public const string AssemblyFileVersion = "7.0.0.1000";
public const string PublicKey = "2d9e0870895d5d61";
4. Clean all, Build all
5. Close solution
6. Open Modlr, Build all
- You now have ECO and Modlr compiled with YOUR KEY.
7. Close all VS
Plugin installed:
a) Install an official build of ECO for VS201X (if you do not have it already).
b) Replace contents in program files(x86)/capableObjects/Bin and Modlr with your assemblies from Stage.
c) Replace files here in the VisualStudio plugin folder - it differs between versions:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\CapableObjects\ECO\7.0
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\CapableObjects\Modlr\7.0
d) Search the registry after ECO official key: 46a833be9e90de8c - replace with your new key (2d9e0870895d5d61 in this example)
!!! Also, change the version where it is mentioned in the registry (this will always be in conjunction with the key).
Start VS, Check Tools, and go to About MDriven - does it say your version now?