Exclusions and [{AppVPackageRoot}]

%3CLINGO-SUB%20id%3D%22lingo-sub-292413%22%20slang%3D%22en-US%22%3EExclusions%20and%20%5B%7BAppVPackageRoot%7D%5D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-292413%22%20slang%3D%22en-US%22%3E%3CP%3EWhen%20you%20enter%20exclusions%20into%20the%20exclusion%20list%2C%20they%20are%20variablized%2C%20assuming%20that%20one%20does%20not%20specify%20a%20package%20installation%20folder.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFor%20example%2C%20the%20entry%20%22c%3A%5CWindows%5CSystem32%5Cconfig%22%20gets%20mapped%20to%20%22%5B%7BAppVPackageRoot%7D%5D%5Cconfig%22%2C%20which%20is%20because%20it%20probably%20assumes%20%22C%3A%5CWindows%5CSystem32%22%20as%20the%20default%20installation%20folder%20when%20not%20specified.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIf%20you%20capture%20an%20install%20that%20happens%20to%20also%20write%20to%20this%20area%20without%20specifying%20an%20installation%20folder%2C%20such%20files%20are%20excluded.%26nbsp%3B%20If%20you%20capture%20with%20specifying%20a%20folder%20(such%20as%20%22C%3A%5CProgram%20Files%5CVendor%22)%2C%20then%20the%20exclusion%20is%20missed.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWhy%20is%20this%20important%3F%26nbsp%3B%20Well%20other%20than%20capturing%20inappropriate%20data%2C%20if%20a%20background%20windows%20process%20writes%20a%20file%20to%20this%20area%20during%20capture%20and%20then%20deletes%20it%20before%20we%20save%20the%20package%20off%2C%20the%20save%20fails%20with%20an%20error.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ESo%20there%20are%20two%20issues%3A%3C%2FP%3E%0A%3CP%3E1)%20Filter%20definitions%20should%20not%20variablize%20for%20something%20that%20might%20change%20like%20this.%3C%2FP%3E%0A%3CP%3E2)%20When%20we%20save%20a%20package%2C%20if%20a%20file%20in%20the%20ingredients%20no%20longer%20exists%2C%20maybe%20we%20should%20assume%20it%20was%20really%20a%20temporary%20file%20and%20ignore%20it%20rather%20than%20fail%20the%20package.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-292418%22%20slang%3D%22en-US%22%3ERe%3A%20Exclusions%20and%20%5B%7BAppVPackageRoot%7D%5D%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-292418%22%20slang%3D%22en-US%22%3ENOTE%3A%20This%20is%20related%20to%20the%20two%20feedbackhub%20submissions%20I%20made%20yesterday.%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E
MVP

When you enter exclusions into the exclusion list, they are variablized, assuming that one does not specify a package installation folder.

 

For example, the entry "c:\Windows\System32\config" gets mapped to "[{AppVPackageRoot}]\config", which is because it probably assumes "C:\Windows\System32" as the default installation folder when not specified.

 

If you capture an install that happens to also write to this area without specifying an installation folder, such files are excluded.  If you capture with specifying a folder (such as "C:\Program Files\Vendor"), then the exclusion is missed.

 

Why is this important?  Well other than capturing inappropriate data, if a background windows process writes a file to this area during capture and then deletes it before we save the package off, the save fails with an error.

 

So there are two issues:

1) Filter definitions should not variablize for something that might change like this.

2) When we save a package, if a file in the ingredients no longer exists, maybe we should assume it was really a temporary file and ignore it rather than fail the package.

1 Reply
NOTE: This is related to the two feedbackhub submissions I made yesterday.