none
Invalid Manifest Detected Sequencing

    Question

  • I have been trying to virtualize an application called Mosaiq for deployment in our VDI environment with App-V 5 SP2 HP4. Each time I try to sequence the app I get an Invalid Manifest Detected error when saving. I have finally found that the issue is related to the Install registering a slew of .net Assemblies via regasm.exe.  Does any one have any advice on how to get this sequenced.  Here is what was in the temp\scratch folder after the sequencing failed. I would prefer not to have to have a script runt to register all the dll's

    https://www.dropbox.com/s/m0bk0tdjsjoyfep/qv4yeult.rat.Manifest.xml?dl=0

    Thursday, August 28, 2014 1:27 AM

Answers

  • Thanks Ben I was able to track down the issue following what Dan had outlined. Looks like one of the assemblies this app registers has some nonsense in the registry when it gets registered. This nonsense causes the XML doc to become malformed. Here are some screen shots of what was in the HKCR\Wow6432\CLSID\{Guid}\ProgId\Default

    esp.ManagedAutoPtr<esp::SimulatedAnnealing<6\,double> >

    espcorona.ManagedSharedPtr<esp::Volume<esp::Image<3\,unsigned short\,void\,void> > >

    espcorona.ManagedSharedPtr<esp::ImageHistogram>

    And at the HKCR\

    I ended up unregistering the assembly using resasm /u finished the sequence and created a script to then register the dll when the app launches. Thanks for the help.


    • Edited by Matt Karel Thursday, August 28, 2014 7:06 PM
    • Marked as answer by Matt Karel Thursday, August 28, 2014 7:07 PM
    Thursday, August 28, 2014 6:56 PM

All replies

  • Thursday, August 28, 2014 7:43 AM
  • Thanks Ben, that yielded some details. here is what was in the debug logs.

    A manifest document failed validation against the schema(s).
    DOM Error: 0xC00CE169
    Reason: 'esp.ManagedAutoPtr<esp::SimulatedAnnealing<6\,double> >' violates pattern constraint of '[^\\]*'.
    The element '{http://schemas.microsoft.com/appv/2014/manifest}ProgId' with value 'esp.ManagedAutoPtr<esp::SimulatedAnnealing<6\,double> >' failed to parse.

    Thursday, August 28, 2014 12:13 PM
  • Thanks Ben I was able to track down the issue following what Dan had outlined. Looks like one of the assemblies this app registers has some nonsense in the registry when it gets registered. This nonsense causes the XML doc to become malformed. Here are some screen shots of what was in the HKCR\Wow6432\CLSID\{Guid}\ProgId\Default

    esp.ManagedAutoPtr<esp::SimulatedAnnealing<6\,double> >

    espcorona.ManagedSharedPtr<esp::Volume<esp::Image<3\,unsigned short\,void\,void> > >

    espcorona.ManagedSharedPtr<esp::ImageHistogram>

    And at the HKCR\

    I ended up unregistering the assembly using resasm /u finished the sequence and created a script to then register the dll when the app launches. Thanks for the help.


    • Edited by Matt Karel Thursday, August 28, 2014 7:06 PM
    • Marked as answer by Matt Karel Thursday, August 28, 2014 7:07 PM
    Thursday, August 28, 2014 6:56 PM
  • Hi Matt,

    We are experiencing the same problem, sequencing Mosaiq 2.62. The supplier is not to eager to help since they "do not support virtualization" :(

    Could you give a bit more info? Which assembly did you unregister?

    Can you list the script here? How do you launch it?

    Thanks in advance!


    Michel
    • Edited by Miesepies Friday, July 01, 2016 8:42 AM
    Friday, July 01, 2016 8:41 AM
  • Michel,

    You are in luck! I was able to locate the information that maybe able to help.

    The DLL that I unregistered during the creation of the AppV package was Impac.Mosaiq.RT.Algorithms.ImageRegistraton.EspRigidRegistration.dll Once this was unregistered, I was able to save the package.  A PowerShell script was used as the app was launched to register the dll and copy the ipac.ini file containing user settings as we were looking to run this in a VDI session.The Script was called via the UserConfig.xml within the UserScripts . Hope this helps.

    Good Luck!

    User Config XML :

         <UserScripts>
          <StartVirtualEnvironment  RunInVirtualEnvironment="true">
            <Path>Powershell.exe</Path>
            <Arguments>-ExecutionPolicy bypass -File "[{AppVPackageRoot}]\..\Scripts\Mosaiq-AppV.ps1" -logon -AppName "Electa Mosaiq Workstation"</Arguments>
            <Wait RollbackOnError="true"/>
          </StartVirtualEnvironment>
        <TerminateVirtualEnvironment>
            <Path>Powershell.exe</Path>
            <Arguments>-ExecutionPolicy bypass -File "[{AppVPackageRoot}]\..\Scripts\Mosaiq-AppV.ps1" -logoff -AppName "Electa Mosaiq Workstation"</Arguments>
          <Wait RollbackOnError="false"/>
        </TerminateVirtualEnvironment>
        </UserScripts>

    PS script used to register DLL and Copy Config INI:

    param([Switch] $Logon,[Switch] $Logoff,[String] $AppName)

    function Get-ScriptDirectory {
      $Invocation = (Get-Variable MyInvocation -Scope 1).Value
      Split-Path $Invocation.MyCommand.Path
    }
    $UserName=$Env:USERNAME
    $LocalAppData=$Env:LocalAppData

    $ProfilePath="\\<path to users Roaming Profile>\$UserName"
    $REGASM="C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe"

    $package = get-appvclientpackage | where {$_.Name -eq $AppName}

    # Get the Package ID and Version ID
    $pkgid = $package.packageID.ToString()
    $verid = $package.versionID.ToString()

    $Scriptpath = Get-ScriptDirectory
    $VFSPath=(get-item $scriptPath).parent.FullName


    If($Logon -eq $true){
        Start-Process -FilePath $REGASM -ArgumentList "/nologo \\<FQDN of Server>\<ShareName>\Impac.Mosaiq.RT.Algorithms.ImageRegistraton.EspRigidRegistration.dll"
        Copy-Item -Path "$ProfilePath\impac.ini" -Destination "$LocalAppData\Microsoft\AppV\Client\VFS\$pkgid\Windows\impac.ini" -ErrorAction:SilentlyContinue
    }

    If($Logoff -eq $true){
        Copy-Item -Path "$LocalAppData\Microsoft\AppV\Client\VFS\$pkgid\Windows\impac.ini" -Destination "$ProfilePath\impac.ini" -ErrorAction:SilentlyContinue
    }

    • Proposed as answer by Tiberivs Sunday, July 03, 2016 9:49 PM
    Saturday, July 02, 2016 12:57 AM
  • Thanks! That was quick :)

    This will save me a lot of time (and from a locally installed client ;)).


    Saturday, July 02, 2016 7:27 AM
  • One thing I'm wondering... can a regular user register a dll? The scripts inside userconfig when a app-v package is started, run in user context. 

    I have succesfully built the package end edited the userconfig, but have not yet had the time to test.

    Saturday, July 02, 2016 11:12 AM