SOLVED

MSIX - FTA and Dependency handling

%3CLINGO-SUB%20id%3D%22lingo-sub-1419416%22%20slang%3D%22en-US%22%3EMSIX%20-%20FTA%20and%20Dependency%20handling%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1419416%22%20slang%3D%22en-US%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3E2%20quick%20questions%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CUL%3E%3CLI%3EDoes%20MSIX%20support%20multiple%20FTA%3F%20Example%2C%20if%20my%20application%20derives%20FTA%20for%202%20file%20types%20via%202%20different%20executable%20(.exe)%2C%20does%20this%20work%20with%20MSIX%3F%20I%20believe%20it%20does%20not%20support%20FTA%20for%20apps%20that%20derives%20it%20from%20a%20.dll%20file%20instead%20of%20.exe%20file.%3C%2FLI%3E%3CLI%3EIf%20I%20have%202%20or%20more%20apps%20that%20depend%20on%20each%20other%2C%20how%20can%20I%20deploy%20them%20as%20separate%20packages%20but%20ensure%20they%20are%20able%20to%20use%20each%20other's%20resource.%20In%20case%20of%20App-V%2C%20we%20could%20achieve%20this%20via%20Connection%20Group.%20How%20can%20we%20achieve%20this%20in%20case%20of%20MSIX%20packages%3C%2FLI%3E%3C%2FUL%3E%3CP%3EThank%20You!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1437857%22%20slang%3D%22en-US%22%3ERe%3A%20MSIX%20-%20FTA%20and%20Dependency%20handling%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1437857%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F680605%22%20target%3D%22_blank%22%3E%40DS2803%3C%2FA%3E%20Some%20possible%20answers.%3C%2FP%3E%0A%3CP%3E1)%20An%20application%20may%20have%20more%20than%20one%20FTA.%3C%2FP%3E%0A%3CP%3E2)%20Support%20for%20Shell%20Extensions%20(FTA%20items%20under%20ShellEx%20that%20point%20to%20dlls%20to%20be%20loaded%20by%20the%20windows%20shell%20%22windows%20explorer%22%20process)%20is%20sketchy%20at%20present.%26nbsp%3B%20Some%20types%20work%20and%20some%20don't.%26nbsp%3B%20I'm%20unaware%20of%20a%20published%20list%2C%20but%20context%20menus%20are%20the%20most%20popular%20type%20and%20they%20seem%20OK.%3C%2FP%3E%0A%3CP%3E3)%20The%20equivalent%20of%20the%20App-V%20Connection%20group%20has%20been%20discussed%20as%20a%20possible%20(likely%3F)%20future%20for%20MSIX.%26nbsp%3B%20Of%20course%20it%20has%20to%20have%20a%20different%20name%20when%20it%20comes%20out.%26nbsp%3B%20There%20is%20a%20also%20a%20different%20concept%20called%20the%20Modification%20package.%26nbsp%3B%20A%20modification%20package%20depends%20on%20a%20primary%20package%20and%20may%20contain%20files%20and%20registry%2C%20but%20no%20outward%20publishing%20extensions%20like%20shortcuts%2FFTAs%2FProtocol%20Handlers.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1438182%22%20slang%3D%22en-US%22%3ERe%3A%20MSIX%20-%20FTA%20and%20Dependency%20handling%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1438182%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F146612%22%20target%3D%22_blank%22%3E%40TIMOTHY%20MANGAN%3C%2FA%3E%26nbsp%3BThank%20you%20for%20your%20response%20Tim.%26nbsp%3B%20Notepad%2B%2B%20which%20derives%20it%20FTA%20via%20.dll%20file%20seems%20to%20be%20one%20of%20those%20apps.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EYeah%20something%20similar%20to%20connection%20group%20should%20be%20there%20for%20MSIX%20as%20well.%20Thank%20you%20for%20shedding%20some%20light%20on%20which%20type%20of%20apps%20are%20ideal%20to%20be%20created%20as%20optional%20packages%20via%20Modification%20package%20approach.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1440369%22%20slang%3D%22en-US%22%3ERe%3A%20MSIX%20-%20FTA%20and%20Dependency%20handling%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1440369%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F680605%22%20target%3D%22_blank%22%3E%40DS2803%3C%2FA%3E%20Modification%20packages%20seem%20good%20as%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3Ea%20way%20to%20separate%20out%20app%20configuration%20files%2Fregistry%20settings%20from%20the%20primary%20package.%20Thus%20allowing%20one%20package%20with%20multiple%20configurations%2C%20but%20each%20used%20by%20different%20users.%3C%2FLI%3E%0A%3CLI%3E%26nbsp%3Ba%20way%20to%20separate%20out%20app%20plugins%20(dlls%20often%20registered%20by%20file%20location%20of%20registry).%20This%20allows%20for%20many%20plugins%20to%20be%20package%20separately%20with%20any%20combination%20desired%20delivered%20to%20a%20given%20user.%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWhen%20it%20comes%20to%20files%2C%20Modification%20packages%20(currently)%20require%20VFS%20pathing%20to%20be%20used%20for%20the%20overlay%20to%20work.%20So%20you%20don't%20tell%20the%20packaging%20tool%20where%20notepad%2B%2B%20is%20going%20to%20be%20installed%20so%20that%20all%20files%20are%20VFS'd.%26nbsp%3B%20Due%20to%20an%20implementation%20oversite%2C%20this%20overlay%20does%20not%20work%20on%20operating%20systems%20prior%20to%201904.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1441275%22%20slang%3D%22en-US%22%3ERe%3A%20MSIX%20-%20FTA%20and%20Dependency%20handling%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1441275%22%20slang%3D%22en-US%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F680605%22%20target%3D%22_blank%22%3E%40DS2803%3C%2FA%3E%2C%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAnother%20option%20you%20can%20look%20at%20for%20sharing%20resources%20between%20two%20applications%20deployed%20as%20separate%20packages%20is%20packaging%20them%20as%20a%20related%20set.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EYou%20can%20find%20more%20details%20here%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3EOptional%20packages%20%2B%20related%20sets%20overview%26nbsp%3B%20-%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fmsix%2Fpackage%2Foptional-packages%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fmsix%2Fpackage%2Foptional-packages%3C%2FA%3E%3C%2FLI%3E%0A%3CLI%3EAuthoring%20-%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fmsix%2Fpackage%2Foptional-packages-with-executable-code%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fwindows%2Fmsix%2Fpackage%2Foptional-packages-with-executable-code%3C%2FA%3E%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3ECheers%2C%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3ETanaka%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1452854%22%20slang%3D%22en-US%22%3ERe%3A%20MSIX%20-%20FTA%20and%20Dependency%20handling%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1452854%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F146612%22%20target%3D%22_blank%22%3E%40TIMOTHY%20MANGAN%3C%2FA%3E%26nbsp%3BThank%20You%20for%20your%20reply%20Tim.%20Noticed%20something%20strange%20though...%20If%20my%20main%20package%20is%20removed%2C%20the%20optional%20packages%20related%20to%20them%20also%20gets%20removed.%20Is%20this%20expected%3F%3CBR%20%2F%3E%3CBR%20%2F%3EI%20see%20within%20the%20manifest.xml%20of%20the%20optional%20package%2C%20I%20have%20the%20name%20of%20the%20main%20package%20as%20reference.%20If%20I%20build%20the%20next%20version%20of%20the%20main%20package%20with%20the%20same%20Name%20(Not%20referring%20to%20the%20display%20name%20here)%2C%20my%20optional%20package%20should%20auto%20link%20with%20that.%26nbsp%3B%3CBR%20%2F%3E%3CBR%20%2F%3EWith%20optional%20package%20getting%20auto-removed%20when%20main%20package%20is%20removed%2C%20it%20will%20mean%20I%20have%20to%20install%20optional%20package%20everytime%20alongside%20main%20package%2C%20which%20kind%20of%20beats%20the%20purpose%20of%20optional%20package.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EAny%20thoughts%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1454009%22%20slang%3D%22en-US%22%3ERe%3A%20MSIX%20-%20FTA%20and%20Dependency%20handling%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1454009%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F680605%22%20target%3D%22_blank%22%3E%40DS2803%3C%2FA%3E%20Yes%2C%20removal%20of%20main%20package%20automatically%20removed%20the%20optional%20packages.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EHowever%2C%20if%20you%20upgrade%20the%20main%20package%2C%20the%20optional%20packages%20stay%20even%20though%20the%20old%20version%20is%20removed%20as%20part%20of%20that%20process.%3C%2FP%3E%3C%2FLINGO-BODY%3E
Highlighted
Occasional Contributor

Hi,

2 quick questions:

 

  • Does MSIX support multiple FTA? Example, if my application derives FTA for 2 file types via 2 different executable (.exe), does this work with MSIX? I believe it does not support FTA for apps that derives it from a .dll file instead of .exe file.
  • If I have 2 or more apps that depend on each other, how can I deploy them as separate packages but ensure they are able to use each other's resource. In case of App-V, we could achieve this via Connection Group. How can we achieve this in case of MSIX packages

Thank You!

6 Replies
Highlighted
Solution

@DS2803 Some possible answers.

1) An application may have more than one FTA.

2) Support for Shell Extensions (FTA items under ShellEx that point to dlls to be loaded by the windows shell "windows explorer" process) is sketchy at present.  Some types work and some don't.  I'm unaware of a published list, but context menus are the most popular type and they seem OK.

3) The equivalent of the App-V Connection group has been discussed as a possible (likely?) future for MSIX.  Of course it has to have a different name when it comes out.  There is a also a different concept called the Modification package.  A modification package depends on a primary package and may contain files and registry, but no outward publishing extensions like shortcuts/FTAs/Protocol Handlers.

Highlighted

@TIMOTHY MANGAN Thank you for your response Tim.  Notepad++ which derives it FTA via .dll file seems to be one of those apps.

 

Yeah something similar to connection group should be there for MSIX as well. Thank you for shedding some light on which type of apps are ideal to be created as optional packages via Modification package approach.

Highlighted

@DS2803 Modification packages seem good as:

  • a way to separate out app configuration files/registry settings from the primary package. Thus allowing one package with multiple configurations, but each used by different users.
  •  a way to separate out app plugins (dlls often registered by file location of registry). This allows for many plugins to be package separately with any combination desired delivered to a given user.

 

When it comes to files, Modification packages (currently) require VFS pathing to be used for the overlay to work. So you don't tell the packaging tool where notepad++ is going to be installed so that all files are VFS'd.  Due to an implementation oversite, this overlay does not work on operating systems prior to 1904.

Highlighted

Hi @DS2803,

 

Another option you can look at for sharing resources between two applications deployed as separate packages is packaging them as a related set.

 

You can find more details here:

 

Cheers,

Tanaka

 

Highlighted

@TIMOTHY MANGAN Thank You for your reply Tim. Noticed something strange though... If my main package is removed, the optional packages related to them also gets removed. Is this expected?

I see within the manifest.xml of the optional package, I have the name of the main package as reference. If I build the next version of the main package with the same Name (Not referring to the display name here), my optional package should auto link with that. 

With optional package getting auto-removed when main package is removed, it will mean I have to install optional package everytime alongside main package, which kind of beats the purpose of optional package.

 

Any thoughts?

Highlighted

@DS2803 Yes, removal of main package automatically removed the optional packages.

 

However, if you upgrade the main package, the optional packages stay even though the old version is removed as part of that process.