{"id":29173261,"url":"https://github.com/shanec-/generator-nullfactory-xrm","last_synced_at":"2025-07-01T14:11:24.761Z","repository":{"id":57248219,"uuid":"66704980","full_name":"shanec-/generator-nullfactory-xrm","owner":"shanec-","description":"Yeoman generator for Dynamics 365 Solutions. It generates a project structure that facilitates the quick creation builds and automated release strategies with minimal effort.","archived":false,"fork":false,"pushed_at":"2019-12-16T09:22:51.000Z","size":424,"stargazers_count":16,"open_issues_count":6,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-27T03:41:10.704Z","etag":null,"topics":["continuous-delivery","continuous-deployment","continuous-integration","crm","devops","dynamics","dynamics-365","dynamics-crm","msdyn365","powershell","release-strategy","xrm","yeoman","yeoman-generator"],"latest_commit_sha":null,"homepage":"http://nullfactory.net","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shanec-.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-27T08:44:06.000Z","updated_at":"2023-10-04T11:29:59.000Z","dependencies_parsed_at":"2022-08-24T16:11:11.479Z","dependency_job_id":null,"html_url":"https://github.com/shanec-/generator-nullfactory-xrm","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/shanec-/generator-nullfactory-xrm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shanec-%2Fgenerator-nullfactory-xrm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shanec-%2Fgenerator-nullfactory-xrm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shanec-%2Fgenerator-nullfactory-xrm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shanec-%2Fgenerator-nullfactory-xrm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shanec-","download_url":"https://codeload.github.com/shanec-/generator-nullfactory-xrm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shanec-%2Fgenerator-nullfactory-xrm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262797810,"owners_count":23365904,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continuous-delivery","continuous-deployment","continuous-integration","crm","devops","dynamics","dynamics-365","dynamics-crm","msdyn365","powershell","release-strategy","xrm","yeoman","yeoman-generator"],"created_at":"2025-07-01T14:11:23.522Z","updated_at":"2025-07-01T14:11:24.744Z","avatar_url":"https://github.com/shanec-.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# generator-nullfactory-xrm\n\u003e Dynamics CRM / 365 Project Structure Generator\n\n[![Build status](https://ci.appveyor.com/api/projects/status/4dmqta7pnueqxa11?svg=true)](https://ci.appveyor.com/project/shanec-/generator-nullfactory-xrm)\n[![npm version](https://badge.fury.io/js/generator-nullfactory-xrm.svg)](https://badge.fury.io/js/generator-nullfactory-xrm)\n\nA yeoman generator for scaffolding [Solution Packager](https://msdn.microsoft.com/en-us/library/jj602987.aspx)-compatible Dynamics 365 project structures.\n\nThe project structure is built around the Solution Packager (provided as part of the official SDK) and the [Microsoft.Xrm.Data.PowerShell](https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell) module. It facilitates the quick creation of team builds and release strategies with minimal effort and enables you to maintain a single source of truth for your CRM solutions.\n\n## Installation\n\nFirst, install [Yeoman](http://yeoman.io) and generator-nullfactory-xrm using [npm](https://www.npmjs.com/) (we assume you have pre-installed [node.js](https://nodejs.org/)).\n\n```bash\nnpm install -g yo\nnpm install -g generator-nullfactory-xrm\n```\n\nThen generate your new project:\n\n```bash\nyo nullfactory-xrm\n```\n\n## Execution\n\nTemplate questions and their purpose:\n\n1. Visual Studio solution file name?  `The visual studio solution filename.`\n2. Visual Studio project prefix?  `The prefix for the projects generated. This can be an organization name or preferred convention.`\n3. Source CRM server url? `This is the source CRM server url. Example:[https://sndbx.crm6.dynamics.com](https://sndbx.crm6.dynamics.com)`\n4. Source CRM solution name? `The name of the CRM solution to be extracted.`\n5. Add *.WebResource project? `Specifies if a new project should be created to manage the web resouces.`\n6. Add *.Plugin project? `Specifies if a new plugin project should be created.`\n7. Add *.Workflow project? `Specifies if a new workflow project should be created`\n\n## Post Installation Setup\n\nStart off by running the `_RunFirst.ps1` powershell script located in the generated root folder. This script would restore and update the packages used by the `Nullfactory.Xrm.Tooling`\n\n```\n.\\_RunFirst.ps1\n```\n\nNext, if you opted to add either a plugin or workflow project, ensure that the assembly is signed with a new key.  \n\nOptionally, install the [`Microsoft.Xrm.Data.PowerShell`](https://github.com/seanmcne/Microsoft.Xrm.Data.PowerShell) powershell module. On a Windows 10 or later, do this by executing the included powershell script `Nullfactory.Xrm.Tooling\\_Install\\Install-Microsoft.Xrm.Data.PowerShell.ps1` or manually running the following command:\n\n```\nInstall-Module -Name Microsoft.Xrm.Data.PowerShell -Scope CurrentUser -Force\n```\n\nEven if you skip this step, the sychrnoization PowerShell script would attempt to install it automatically. The PowerShell scripts require a minimum of PowerShell 5.0 and Microsoft.Xrm.Data.PowerShell 2.5.\n\n### Install Customised .gitignore\n\nIf the underlying repository is git, run the following command to install a customised version of the gitignore file. This file is structured to include the binaries within the `Nullfactory.Xrm.Tooling\\bin\\coretools` folder.  \n\n```\nyo nullfactory-xrm:gitignore\n```\n\n## Pull the CRM Solution into the Project Structure\n\nAnytime the CRM solution needs to be pulled down into the project structure, execute the script located at `Nullfactory.Xrm.Tooling\\Scripts\\Pull-CrmSolution.Param.ps1`.\n\n### Resource Mapping\n\nEdit the mapping file to map to the appropriate resource project. They are located in the `Nullfactory.Xrm.Tooling\\Mapping` folder. \nMore information on the structure of the mapping file can be found [here](https://msdn.microsoft.com/en-us/library/jj602987.aspx#use_command)\n\n## Building the CRM Solution\n\nThe repackaging the extracted solution is integrated as a post-build step of the solution class library. Simply build it to output both a managed as well as unmanaged CRM solution package. \n\n### Install a YAML based CI Build\n\nUse the following command and prompts in order to generate a tailored YAML CI build file.\n\n```\nyo nullfactory-xrm:cibuild\n```\n\nCurrently supports only [Visual Studio Team Services](https://docs.microsoft.com/en-us/vsts/build-release/actions/build-yaml).\n\n### Source Control, CI Builds and Release Management\n\nMore information on source control management, setting up continuous integration builds and automated releases:\n\n- [Release Strategy for Dynamics CRM - Part 1 - Preparation](http://www.nullfactory.net/2016/10/release-strategy-for-dynamics-crm-prepping-part-1/)\n- [Release Strategy for Dynamics CRM - Part 2 - Setting Up the Build](http://www.nullfactory.net/2016/11/release-strategy-for-dynamics-crm-setting-up-the-build-part-2/)\n- [Release Strategy for Dynamics CRM - Part 3 - Setting Up the Release](http://www.nullfactory.net/2016/11/release-strategy-for-dynamics-crm-setting-up-the-release-part-3/)\n- [Release Strategy for Dynamics CRM - Part 4 - Versioning](http://www.nullfactory.net/2017/02/release-strategy-for-dynamics-crm-versioning-part-4/)\n- [Release Strategy for Dynamics CRM - Part 5 - Deploy Third-Party Solutions](http://www.nullfactory.net/2017/04/release-strategy-for-dynamics-crm-deploying-third-party-solutions-part-5/)\n\n## Feedback\n\nPlease submit any feature requests or issues found to [https://github.com/shanec-/generator-nullfactory-xrm/issues](https://github.com/shanec-/generator-nullfactory-xrm/issues)\n\n## License\nCopyright © [Shane Carvalho](http://www.nullfactory.net). \nLicensed under the GPL-3.0 License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshanec-%2Fgenerator-nullfactory-xrm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshanec-%2Fgenerator-nullfactory-xrm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshanec-%2Fgenerator-nullfactory-xrm/lists"}