web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Answered

With D365, can I create an X++ ISV solution and somehow package it so that the source is private?

(0) ShareShare
ReportReport
Posted on by 152

I'm interested in developing an ISV solution, but I'm concerned that someone could just copy the model source and drop it wherever they want.

The solution is primarily X++ but has some C# too if that matters.

Is there a standard or common method of protecting (or concealing?) the X++ source code in some way?

I have the same question (0)
  • Verified answer
    Sukrut Parab Profile Picture
    71,710 Moderator on at

    You  can distribute your solution as a deployable package and thats what most of the ISV's do and preferable way as well.  In that way whoever installs it they dont have your source code. A deployable package does NOT contain the source code, they contained binaries (DLL) created by building the source code

  • Verified answer
    Satish Panwar Profile Picture
    14,671 Moderator on at

    In addition to comments from Sukrut, take a look at link below on how you can protect your codebase and manage it via licensing.

    docs.microsoft.com/.../isv-licensing

  • Wmyk Profile Picture
    152 on at

    Excellent info! Thanks so much!

  • nmaenpaa Profile Picture
    101,160 Moderator on at

    As a downside, your customer can't debug your code, and has difficulties extending it (they have to do it "blind", not seeing inside your methods).

    Depending on the complexity of your solution, it might or might not be a problem. Think about working with and extending D365FO without seeing the source code.

  • Wmyk Profile Picture
    152 on at

    Hypothetically, if I wanted to reveal all of the source code, how would "deliver" the ISV then? I thought deployable packages were the suggested vehicle, which are just the binaries...or can you also create a deployable package with source code?

    You make a good point though...I want the customer to see some code and be able to extend some things. Could I somehow deliver 2 packages...one closed and one open?

  • Suggested answer
    nmaenpaa Profile Picture
    101,160 Moderator on at

    You can deliver models and a deployable package. By default the ADO build pipeline creates both. You can also publish parts of your solution as binary/dll (such as license code and config keys) and parts as models.

    In all cases the customer should add your solution in their ADO and build one deployable package that contains all their custom code and ISV solutions.

  • Wmyk Profile Picture
    152 on at

    I haven't yet seen what files ADO actually creates, so using my imagination some. Let's see if I follow what you're saying.

    I would separate my solution into two models (ex. MyModelOpen & MyModelClosed), my ADO build process would dump out those 2 models and 2 deployable packages (MyModelOpenPackage & MyModelClosedPackage), then I deliver MyModelClosedPackage + MyModelOpen?

    And the customer takes the open model + closed deployable package and their ADO process rolls all that into a single deployable package somehow?

  • Verified answer
    nmaenpaa Profile Picture
    101,160 Moderator on at

    With default settings, the build produces a deployable package that has all your code, and a zip file that has all your models.

    You can set up the pipeline to exclude package(s) from the deployable package. And you can manually remove models from the model zip.

    So, you can ship a deployable package that contains your package A, and ship model of package B.

    I've blogged about build pipelines, the post might contain interesting info for you: community.dynamics.com/.../working-with-build-pipelines-build-definitions

    Customers can add models to ADo, as well as ISV binaries (deployable packages): docs.microsoft.com/.../manage-runtime-packages

    The build wraps the built models, and ISV binaries into one deployable package which your customer installs in their test/prod.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Responsible AI policies

As AI tools become more common, we’re introducing a Responsible AI Use…

Neeraj Kumar – Community Spotlight

We are honored to recognize Neeraj Kumar as our Community Spotlight honoree for…

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
Martin Dráb Profile Picture

Martin Dráb 646 Most Valuable Professional

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 529 Super User 2025 Season 2

#3
Sohaib Cheema Profile Picture

Sohaib Cheema 285 User Group Leader

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans