{"id":16974773,"url":"https://github.com/3f/iexod","last_synced_at":"2025-08-24T22:31:11.488Z","repository":{"id":144130092,"uuid":"269404636","full_name":"3F/IeXod","owner":"3F","description":"The most portable alternative to Microsoft.Build for evaluating, manipulating, and other progressive data processing in a compatible XML-like syntax","archived":false,"fork":false,"pushed_at":"2024-02-22T00:01:28.000Z","size":10307,"stargazers_count":18,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-17T21:30:37.996Z","etag":null,"topics":["e-msbuild","evaluation","evaluator","iexod","microsoft-build","msbuild","parser","project-files","scripting","visualstudio","vs2010","vs2017","vs2019","vs2022","xml-parser","xml-parsing","xml-scripting"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3F.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.txt","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["3F.github.io/Donation"]}},"created_at":"2020-06-04T16:04:31.000Z","updated_at":"2025-06-12T16:48:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"dbf9f72f-d9f9-4af2-a8f6-c6e10ddf543c","html_url":"https://github.com/3F/IeXod","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/3F/IeXod","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3F%2FIeXod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3F%2FIeXod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3F%2FIeXod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3F%2FIeXod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3F","download_url":"https://codeload.github.com/3F/IeXod/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3F%2FIeXod/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271963324,"owners_count":24850603,"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","status":"online","status_checked_at":"2025-08-24T02:00:11.135Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["e-msbuild","evaluation","evaluator","iexod","microsoft-build","msbuild","parser","project-files","scripting","visualstudio","vs2010","vs2017","vs2019","vs2022","xml-parser","xml-parsing","xml-scripting"],"created_at":"2024-10-14T01:08:00.838Z","updated_at":"2025-08-24T22:31:11.422Z","avatar_url":"https://github.com/3F.png","language":"C#","funding_links":["3F.github.io/Donation"],"categories":[],"sub_categories":[],"readme":"# [IeXod](https://github.com/3F/IeXod)\n\nThe most portable alternative to *Microsoft.Build* for evaluating, manipulating, and other progressive data processing in a compatible XML-like syntax.\n\n```r\nCopyright (c) .NET Foundation and contributors\nCopyright (c) 2020-2024  Denis Kuzmin \u003cx-3F@outlook.com\u003e github/3F\nCopyright (c) IeXod contributors https://github.com/3F/IeXod/graphs/contributors\n```\n\n[ 「 ❤ 」 ](https://3F.github.io/fund) [![License](https://img.shields.io/badge/License-MIT-74A5C2.svg)](https://github.com/3F/IeXod/blob/master/LICENSE)\n[![Build status](https://ci.appveyor.com/api/projects/status/mclqcptonbch6jjv/branch/master?svg=true)](https://ci.appveyor.com/project/3Fs/iexod/branch/master)\n[![release](https://img.shields.io/github/v/release/3F/IeXod?include_prereleases\u0026sort=semver)](https://github.com/3F/IeXod/releases/latest)\n[![NuGet IeXod](https://img.shields.io/nuget/v/IeXod.svg)](https://www.nuget.org/packages/IeXod/)\n\n\n## Why IeXod\n\nhttps://github.com/3F/MvsSln/issues/23\n\n### 🔍 Easy to use\n\n*Microsoft.Build* with its typical error [[?]](https://github.com/3F/MvsSln/wiki/Advanced-Features#about--possible--problems)\n\n```csharp\n// 'The SDK 'Microsoft.NET.Sdk' specified could not be found.\nnew Project(\"\u003cpath to Sdk-style project file\u003e\");\n```\n\n**[IeXod](https://github.com/3F/IeXod)** 👇\n\n```csharp\nnew Project(\"\u003cpath to Sdk-style project file\u003e\"); // Microsoft.NET.Sdk -\u003e \n/* ~\n+ Imports  Count = 30\n+ AllEvaluatedItemDefinitionMetadata  Count = 21\n+ AllEvaluatedItems  Count = 108\n+ AllEvaluatedProperties  Count = 367\n...\n*/\n```\n\n### 🔧 Configurable Sdk resolvers at runtime\n\n```csharp\nnew Project(\"...\", properties, ProjectToolsOptions.Default);\n\nnew Project(\"...\", properties, new ProjectToolsOptions(new[] { \n    @\"path_to_\\sys\\resolvers\\\", \n    @\"path2\\\",\n    ...\n}));\n\nProjectToolsOptions.Default.SdkResolvers = new SdkResolver[] { \n    new SysResolver(), \n    new ProdResolver(),\n    ...\n};\n```\n\n### 🧦🎯 Automatic searching of the modern Toolsets\n\nVS setup **API** + Registry + [hMSBuild.bat](https://3F.github.io/hMSBuild/releases/latest/) + Configuration files + ...;\n\nThat continues direction of https://github.com/3F/hMSBuild\n\n### 🔨 Exposing Toolsets in classical notation\n\n```\n\u003e {[Current, ToolsPath=...\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\amd64]}\n...\n{[14.0, ToolsPath=C:\\Program Files (x86)\\MSBuild\\14.0\\bin\\amd64]}\n{[15.0, ToolsPath=...\\Microsoft Visual Studio\\2017\\Community\\MSBuild\\15.0\\Bin\\amd64]}\n{[16.0, ToolsPath=...\\Microsoft Visual Studio\\2019\\Community\\MSBuild\\Current\\Bin\\amd64]}\n\u003e\u003e {[17.0, ToolsPath=...\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\amd64]}\n```\n\n### 🧰 Portability, Compatibility, and Functionality\n\n\u003e Modern #MSBuild assemblies are much more closely integrated with #VisualStudio and much more difficult to maintain independently [[?]](https://twitter.com/GitHub3F/status/1184170248532119552)\n\nThis is most important goal for [IeXod](https://github.com/3F/IeXod) project. To help to avoid the following nightmare: \n\n❌ From difficulty use (\\~ [Microsoft.Build.Locator](https://www.nuget.org/packages/Microsoft.Build.Locator/)) to unpredictable behavior in various products (\\~ Visual Studio etc) due to active integration inside a single environment with *Microsoft.Build.*\n\n### 🎈 Something More\n\nin progress ...\n\nFollow the news;\n\n* https://github.com/3F\n* https://github.com/3F/IeXod\n\nContribute;\n\nEnjoy!\n\n## IeXod and custom Sdk Resolvers\n\nIeXod provides independent interface for the easiest implementation of any new Sdk Resolvers.\n\n[![NuGet IeXod.SdkResolver](https://img.shields.io/nuget/v/IeXod.SdkResolver.svg)](https://www.nuget.org/packages/IeXod.SdkResolver/)\n\nExtend evaluation as you need; Then, easily register and configure new resolvers on the fly!\n\n## Where is used\n\n( 📅 Planned at least after first stable IeXod release )\n\n* [MvsSln](https://github.com/3F/MvsSln)\n* [E-MSBuild](https://github.com/3F/E-MSBuild)\n* [.NET DllExport](https://github.com/3F/DllExport)\n* [SobaScript](https://github.com/3F/SobaScript)\n* [vsSolutionBuildEvent](https://github.com/3F/vsSolutionBuildEvent)\n* ...","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3f%2Fiexod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3f%2Fiexod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3f%2Fiexod/lists"}