{"id":1854,"date":"2018-03-06T09:27:26","date_gmt":"2018-03-06T09:27:26","guid":{"rendered":"https:\/\/www.autoitconsulting.com\/site\/?page_id=1854"},"modified":"2025-07-26T14:25:17","modified_gmt":"2025-07-26T13:25:17","slug":"using-assemblyresolve-load-sccm-sdk-assemblies-demand","status":"publish","type":"page","link":"https:\/\/www.autoitconsulting.com\/site\/sccm-sdk\/fundamentals\/using-assemblyresolve-load-sccm-sdk-assemblies-demand\/","title":{"rendered":"Using AssemblyResolve to Load ConfigMgr SDK Assemblies On Demand"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p>As detailed in\u00a0<a href=\"https:\/\/www.autoitconsulting.com\/site\/sccm-sdk\/fundamentals\/configuring-visual-studio-to-use-sccm-assemblies\/\">Configuring Visual Studio to use ConfigMgr Assemblies<\/a>\u00a0is it not permitted to take the assemblies from the Microsoft Configuration Manager console and bundle them with your application if distributing outside your company. One possible solution is to configure your application so that it will automatically load the required assemblies from a local installation of the ConfigMgr console. This also has some advantages over bundling the assemblies with your application:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Simplified installation for the end-user. No need to write scripts or instructions for the end-user to copy the required ConfigMgr DLLs into your program folder. Just a simple pre-requisite of &#8220;ConfigMgrConsole must be installed&#8221;.<\/li>\n\n\n\n<li>Always up to date. ConfigMgr is now updated every 6 months, and each release has updated assemblies. The ConfigMgr console also updates itself when a new server version has been installed. Your program will always be using the correct version of assemblies for your instance of ConfigMgr.<\/li>\n\n\n\n<li>No legal worries distributing your program outside of the company.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">AssemblyResolve Event<\/h2>\n\n\n\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/api\/system.appdomain.assemblyresolve\" target=\"_blank\" rel=\"noopener\">MSDN description of AppDomain.AssemblyResolve<\/a>.<\/p>\n\n\n\n<p>When you run your ConfigMgr SDK based application without copying the relevant assemblies into the same folder as your executable you will get an exception when the missing assemblies attempt to load. The\u00a0<strong>AssemblyResolve<\/strong> event is triggered whenever an assembly load is attempted and cannot be found. The event also provides the opportunity to load the requested assemblies from another location instead of just failing. The example code below shows how to use AssemblyResolve to allow an application to load the ConfigMgr SDK assemblies directly from wherever it is installed. The way it works is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Registers the AssemblyResolve event.<\/li>\n\n\n\n<li>Only concerns itself with requests for assemblies that are used in ConfigMgr:\n<ul class=\"wp-block-list\">\n<li>AdminUI.*<\/li>\n\n\n\n<li>DcmObjectModel*<\/li>\n\n\n\n<li>Microsoft.ConfigurationManagement.*<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Uses the environment variable\u00a0<strong>SMS_ADMIN_UI_PATH<\/strong> to find an installation of the ConfigMgr console.<\/li>\n\n\n\n<li>Attempts to load the assembly from the ConfigMgr console folder.<\/li>\n\n\n\n<li>If unsuccessful, will show a popup to the end-user and describes the DLL file that is missing (nicer than an exception).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Examples and Downloads<\/h2>\n\n\n\n<p>The examples on this page can be downloaded from the <a href=\"https:\/\/github.com\/AutoItConsulting\/sccm-sdk-snippets\" target=\"_blank\" rel=\"noopener\">GitHub repo<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/AutoItConsulting\/sccm-sdk-snippets\/blob\/master\/src\/AutoIt.SCCM.SDK.Snippets\/Program.cs\" target=\"_blank\" rel=\"noopener\">Program.cs<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">AssemblyResolve<\/h3>\n\n\n\n<p>Using the AssemblyResolve event to load ConfigMgr SDK assemblies from the ConfigMgr Console folder.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 0 16px;font-size:0.8em;width:100%;text-align:left;background-color:#1E1E1E;font-style:italic;color:#D4D4D4\"><span style=\"border-bottom:1px solid rgba(234, 191, 191, 0.2)\">C#<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>internal class Program  \n{\n    private static void Main(string[] args)  \n    {  \n        \/\/ Catch assembly references that can't be resolved - then load them from the CM Admin Console folder\n        AppDomain currentDomain = AppDomain.CurrentDomain;\n        currentDomain.AssemblyResolve += OnResolveAssembly;\n    }\n    \n    private static Assembly OnResolveAssembly(object sender, ResolveEventArgs args)\n    {\n        \/\/ Only concern ourself with CM related DLLs\n        if (!args.Name.StartsWith(\"AdminUI.\") &amp;&amp; !args.Name.StartsWith(\"DcmObjectModel\") &amp;&amp; !args.Name.StartsWith(\"Microsoft.ConfigurationManagement.\"))\n        {\n            return null;\n        }\n\n        var askedAssemblyName = new AssemblyName(args.Name);\n\n        string assemblyDllName = askedAssemblyName.Name + \".dll\";\n        string assemblyDllPath = string.Empty;\n\n        \/\/ Get the console location\n        string consolePath = Environment.GetEnvironmentVariable(\"SMS_ADMIN_UI_PATH\");\n\n        if (!string.IsNullOrEmpty(consolePath))\n        {\n            DirectoryInfo directoryInfo = Directory.GetParent(consolePath);\n            assemblyDllPath = directoryInfo.FullName;\n        }\n\n        assemblyDllPath += \"\\\\\" + assemblyDllName;\n\n        \/\/ Check if the file exists, if so load it and return\n        if (File.Exists(assemblyDllPath))\n        {\n            Assembly assembly = Assembly.LoadFrom(assemblyDllPath);\n            return assembly;\n        }\n\n        string message = \"The following DLL is missing:\\r\\n\" + assemblyDllName;\n        message += \"\\r\\n\\r\\n\";\n        message += \"Please install the Configuration Manager Admin Console or copy the named DLL into the application directory.\";\n\n        MessageBox.Show(message);\n\n        Environment.Exit(1);\n        return null;\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">internal<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">Program<\/span><span style=\"color: #D4D4D4\">  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">private<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">static<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">Main<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">string<\/span><span style=\"color: #D4D4D4\">[] <\/span><span style=\"color: #9CDCFE\">args<\/span><span style=\"color: #D4D4D4\">)  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    {  <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">        \/\/ Catch assembly references that can&#39;t be resolved - then load them from the CM Admin Console folder<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #4EC9B0\">AppDomain<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">currentDomain<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">AppDomain<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">CurrentDomain<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">currentDomain<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">AssemblyResolve<\/span><span style=\"color: #D4D4D4\"> += <\/span><span style=\"color: #9CDCFE\">OnResolveAssembly<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">private<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">static<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">Assembly<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">OnResolveAssembly<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">object<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">sender<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">ResolveEventArgs<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">args<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">        \/\/ Only concern ourself with CM related DLLs<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (!<\/span><span style=\"color: #9CDCFE\">args<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">Name<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">StartsWith<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;AdminUI.&quot;<\/span><span style=\"color: #D4D4D4\">) &amp;&amp; !<\/span><span style=\"color: #9CDCFE\">args<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">Name<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">StartsWith<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;DcmObjectModel&quot;<\/span><span style=\"color: #D4D4D4\">) &amp;&amp; !<\/span><span style=\"color: #9CDCFE\">args<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">Name<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">StartsWith<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Microsoft.ConfigurationManagement.&quot;<\/span><span style=\"color: #D4D4D4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">null<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">askedAssemblyName<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #569CD6\">new<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">AssemblyName<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">args<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">Name<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">string<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">assemblyDllName<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">askedAssemblyName<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">Name<\/span><span style=\"color: #D4D4D4\"> + <\/span><span style=\"color: #CE9178\">&quot;.dll&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">string<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">assemblyDllPath<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #569CD6\">string<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">Empty<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">        \/\/ Get the console location<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">string<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">consolePath<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">Environment<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">GetEnvironmentVariable<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;SMS_ADMIN_UI_PATH&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (!<\/span><span style=\"color: #569CD6\">string<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">IsNullOrEmpty<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">consolePath<\/span><span style=\"color: #D4D4D4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4EC9B0\">DirectoryInfo<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">directoryInfo<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">Directory<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">GetParent<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">consolePath<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #9CDCFE\">assemblyDllPath<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">directoryInfo<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">FullName<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">assemblyDllPath<\/span><span style=\"color: #D4D4D4\"> += <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\\\<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\"> + <\/span><span style=\"color: #9CDCFE\">assemblyDllName<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">        \/\/ Check if the file exists, if so load it and return<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">File<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">Exists<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">assemblyDllPath<\/span><span style=\"color: #D4D4D4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #4EC9B0\">Assembly<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">assembly<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">Assembly<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">LoadFrom<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">assemblyDllPath<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">assembly<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #569CD6\">string<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;The following DLL is missing:<\/span><span style=\"color: #D7BA7D\">\\r\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\"> + <\/span><span style=\"color: #9CDCFE\">assemblyDllName<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\"> += <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\r\\n\\r\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\"> += <\/span><span style=\"color: #CE9178\">&quot;Please install the Configuration Manager Admin Console or copy the named DLL into the application directory.&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">MessageBox<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">Show<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">message<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">Environment<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">Exit<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">null<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview As detailed in\u00a0Configuring Visual Studio to use ConfigMgr Assemblies\u00a0is it not permitted to take the assemblies from the Microsoft Configuration Manager console and bundle them with your application if distributing outside your company. One possible solution is to configure your application so that it will automatically load the required assemblies from a local installation [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":100234,"parent":1769,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1854","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/pages\/1854","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/comments?post=1854"}],"version-history":[{"count":11,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/pages\/1854\/revisions"}],"predecessor-version":[{"id":100255,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/pages\/1854\/revisions\/100255"}],"up":[{"embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/pages\/1769"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/media\/100234"}],"wp:attachment":[{"href":"https:\/\/www.autoitconsulting.com\/site\/wp-json\/wp\/v2\/media?parent=1854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}