That's an incredibly frustrating answer - what's wrong with the information I already provided? Do you need me to explain how to run your CLI? How to use it to create a solution? How to download module source?
Jack, It is acceptable to simply replace the open source framework, but that doesn't begin to cover all of the complications related to updating the modules and the solution created by ABP. I made a trivial example by building a solution twice, once referencing the 3.2.0 version of ABP and another referencing 7.2.2. Once I had both created, I ran ABP UPDATE against the 3.2.0 version and compared the results. The ABP UPDATE command doesn't even come CLOSE to creating a project that is on-par with one built from 7.2.2 from scratch. I understand why this is, but the reason we pay for ABP year after year is to take advantage of all of the features and improvements that are constantly being made (which are great!). If we have to manually edit everything to update our solution then this could take days (and that's assuming that the documentation has each of these changes detailed, which it frequently does not!).
Look at the differences in the Blazor project and Module class alone:
If we are paying for a subscription that includes source code, why would we still use the NuGet packages? The reason we are using the source is to allow us to push emergency fixes to production when ABP has not yet had time to respond.
Here is an example - a security patch gets pushed that breaks some existing functionality (could be a .NET fix for an exploit that we are required to deploy, could be a browser patch that customers are applying themselves, etc). Our application is used for time-sensitive work and we cannot wait for ABP to implement a fix, test it, and release a new version of the framework. By building our solution from full source, we can implement our own fix or workaround immediately. We also have a fully automated and containerized CI/CD pipeline, so it isn't possible to just compile and replace a single DLL.
Suite needs to find
Volo.Abp.Commercial.SuiteTemplates.dll
in your project output directories. As I understand you exclude this DLL. Suite will not work if it cannot find this file because all the templates to generate the code are in this file.
Please read the posted question before responding - this response makes no sense in response to the problem reported. We are not using SUITE, we are using CLI. We are not excluding anything - we are creating a new solution, and it contains references to the projects under the 'licensing' folder, which are not part of the source that is released - hence the solution fails to compile. Once I MANUALLY go through all project files and replace project references with packages references I can make it compile, but it is broken "out of the box".
Jack, thank you for your detailed response.
Did I get that right? If yes, please consider either
- Writing modules for your own code and install them to stay maintainable. You can then use
abp upgrade
again- Shift the process. Keep one repository - lets say "MyAbpTextTemplatingModule". When a new version is available, create a branch for example "abp-722" and merge that into your custom repository. That way you will have way less headaches and you will be way faster in adapting new versions.
kind regards Jack
What is the suggested way of making changes or additions to the projects that are created by ABP so that conflicts are minimized? For example, changes to the 'Module' classes.
Thank you, that does solve the problem.
I think this is a bug though, the publicly available source code should not be 'broken' out of the box.
* **Exception message and stack trace**: C:\Users\chris\.nuget\packages\microsoft.build.tasks.git\1.1.1\build\Microsoft.Build.Tasks.Git.targets(25,5): warning : Unable to locate repository with working directory that contains directory 'D:\Blazr4722\abp\framework\src\Volo.Abp.Core'. [D:\Blazr4722\abp\framework\src\Volo.Abp.Cor
e\Volo.Abp.Core.csproj]
C:\Users\chris\.nuget\packages\microsoft.sourcelink.common\1.1.1\build\Microsoft.SourceLink.Common.targets(53,5): warning : Source control information is not available - the generated source link is empty. [D:\Blazr4722\abp\framework\src\Volo.Abp.Core\Volo.Abp.Core.csproj]
abp.exe new MyNewProject --template app-pro --ui blazor --pwa --database-provider ef --database-management-system PostgreSQL --mobile maui --separate-identity-server --separate-tenant-schema --tiered --with-public-website --no-random-port --local-framework-ref --abp-path ..\..\..\ --version 7.2.2 --output-folder D:\Blazr4722
Fix all references to 'licensing' projects, so that the solution will actually compile https://support.abp.io/QA/Questions/5140/New-Solution-Does-Not-Compile
Go to the solution directory and run dotnet build
You will receive hundred of errors related to Source Link
abp.exe new MyNewProject --template app-pro --ui blazor --pwa --database-provider ef --database-management-system PostgreSQL --mobile maui --separate-identity-server --separate-tenant-schema --tiered --with-public-website --no-random-port --local-framework-ref --abp-path ..\..\..\ --version 7.2.2 --output-folder C:\Src\MyNewProject
Create a new ABP solution which references source code. The solution will contain a number of references to projects in the 'licensing' folder, which is not part of the source code which is made available. The new solution will not build successfully until all of these project references have been changed to package references.
We have had to write scripts to process the 831 projects that result (download of source framework, plus Pro modules, plus the new project which was created), and parse all references, removing references which contain 'licensing' and replacing them with package references.
This should not be necessary. Since the 'upgrade' command has not worked well for us in the past, we are creating a new ABP solution each time a new version is published, and moving our changes in to that new version. This extra work also is a barrier to new companies trying to use ABP for the first time.
Here's an example - I've spent quite a bit of time looking for this information: https://support.abp.io/QA/Questions/4042/Lepton-x-Theme-Source-Files-SCSS
I can't find the information anywhere, and the question that should have the answer was closed, with no resolution.