Starts in:
0 DAY
23 HRS
14 MIN
37 SEC
Starts in:
0 D
23 H
14 M
37 S
Open Closed

New Solution Does Not Compile #5140


User avatar
0
cfd000 created
  • ABP Framework version: v7.2.2
  • UI type: Blazor
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace: error CS0234: The type or namespace name 'SuiteTemplates' does not exist in the namespace 'Volo.Abp.Commercial' (are you missing an assembly reference?) error CS0246: The type or namespace name 'VoloAbpCommercialSuiteTemplatesModule' could not be found (are you missing a using directive or an assembly reference?)
  • Steps to reproduce the issue:"
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.


5 Answer(s)
  • User Avatar
    0
    jfistelmann created

    Hey,

    I did the following to reproduce your setup:

    Starting from C:\repos I created the folder abp. Inside of that, I cloned the abp framework https://github.com/abpframework/abp.git After that, I downloaded the source code of every commercial project in the original abp folder with a seperate sub folder for each module. This lead to the following structure: C:\repos\abp --| abp (with abp framework code) --| account --| audit-logging --| gdpr --| identity-pro --| language-management --| openiddict --| saas --| text-template-management --| and so on

    after that, I created a folder for this case: --| support/5140 and then I executed the following command

    abp new MyNewProject --template app-pro --ui blazor-server --database-provider ef -dbms SQLite --local-framework-ref --abp-path ..\..\..\..\ --version 7.2.2
    

    (I did not use all the parameters you added to save some time - but the things I omitted should not matter)

    I then executed dotnet build and had some issues, too.

    Domain project

    I had to replace Volo.Abp.Commercial.SuiteTemplates with a nuget package as you described. It was however the only place where I could find a reference to licensing. The search was made from C:\Repos\abp

    Application Contracts

    I had to comment out identity pro because it was already added by another project referencing it

    Blazor

    Same reason as before.


    After that, the build went through. Please let me know If I followed your description correctly. I will discuss this internally with the team to find possible solutions for that or to adjust the documentation and come back to you with the result.

    Can you please elaborate on this one? Since the 'upgrade' command has not worked well for us in the past

    In addition to that you said that you add your code directly on top of abp code (inside the same assembly) - and that your current process is as follows:

    1. A new version comes out (let's say 7.2.1 -> 7.2.2)
    2. You make a new repository for that and download the code from version 7.2.2 into that
    3. You transfer your own code changes to that new repository

    Did I get that right? If yes, please consider either

    1. Writing modules for your own code and install them to stay maintainable. You can then use abp upgrade again
    2. 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

  • User Avatar
    0
    alper created
    Support Team Director

    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.

  • User Avatar
    0
    cfd000 created

    Jack, thank you for your detailed response.

    Did I get that right? If yes, please consider either

    1. Writing modules for your own code and install them to stay maintainable. You can then use abp upgrade again
    2. 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.

  • User Avatar
    0
    cfd000 created

    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".

  • User Avatar
    0
    alper created
    Support Team Director

    thanks for the feedback

Made with ❤️ on ABP v9.1.0-preview. Updated on November 20, 2024, 13:06