Stuck migrating to new style console extension (Configuration Manager 2103).

Parallels Device Mgmt 11 Reputation points
2021-07-23T10:10:20.803+00:00

having tried to add our custom node in Assets and Compliance.

Here is the node xml (its minimalistic version which reproduces the problem):

<?xml version="1.0" encoding="utf-8"?>
<!-- SCCM Console / Assets and Compliance / Parallels Device Management -->
<RootNodeDescription Id="ParallelsManagementAdd-on" SearchFolderId="ParallelsManagementAdd-on" DisplayName="Parallels Device Management" Description="Manage Mac computers and Parallels Desktop.">
  <ViewAssemblyDescriptions>
    <ViewAssemblyDescription>
      <Assembly>AdminUI.HomePageView.dll</Assembly>
      <Type>Microsoft.ConfigurationManagement.AdminConsole.HomePageView.ViewDescription</Type>
      <CustomData>
        <HomePageConfigurationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <TileList>
            <TileDescription ShowGenericGettingStartedTile="true" />
          </TileList>
        </HomePageConfigurationData>
      </CustomData>
    </ViewAssemblyDescription>
  </ViewAssemblyDescriptions>
</RootNodeDescription>

As a result: the node itself did appeared (on the left side of console window), but the expected node view (on the right side) is not shown.

Also we have the following entry in SmsAdminUI.log:

[11, PID:9572][07/22/2021 16:19:19] :The 'AssemblyPath' assembly (C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\Extensions\91269007-78e9-4cc6-85dc-a5305acb4d39\10.0\bin\AdminUI.HomePageView.dll) was not found.\r\nSystem.IO.FileNotFoundException\r\nCould not load file or assembly 'file:///C:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\Extensions\91269007-78e9-4cc6-85dc-a5305acb4d39\10.0\bin\AdminUI.HomePageView.dll' or one of its dependencies. The system cannot find the file specified.\r\n   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at Microsoft.ConfigurationManagement.AdminConsole.Common.UtilityClass.LoadAssemblyByName(String assemblyName, Boolean reflectOnly)\r\n

So, the question is What are we doing wrong?

Thanks.

Microsoft Configuration Manager
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Jason Sandys 31,296 Reputation points Microsoft Employee
    2021-07-23T20:43:05.437+00:00

    After some more review, the above doesn't appear to work but using a relative path will. This is a bit ugly, but should work:

    <Assembly>..\..\..\..\bin\AdminUI.HomePageView.DLL</Assembly>
    
    1 person found this answer helpful.
    0 comments No comments

  2. Jason Sandys 31,296 Reputation points Microsoft Employee
    2021-07-23T17:43:53.847+00:00

    Hi @Parallels Device Mgmt . I've looped in the dev team to review and upon initial review, the issue is familiar although they are investigating. The initial thought is to update your Assembly node to reference the DLL using a full path that makes use of an environment variable:

    <Assembly>%SMS_ADMIN_UI_PATH%\AdminUI.HomePageView.DLL</Assembly>   
    

    instead of just

    <Assembly>AdminUI.HomePageView.DLL</Assembly>  
    
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.