Assembly Registration in MSI packages

The WinSxS folder is protected by the OS, because this folder is used by Windows for assembly registration. To fix your package you must configure it to register the correspondent assemblies instead of trying to write directly to this folder.

If by mistake you have added assemblies directly to the WinSxS folder in your project, starting with Advanced Installer 13.1 you have the option of an automatic fix for this issue. When you Build your project you will get an error, just select the Fix It or Fix All option, and your assembly files will be moved automatically to an Assemblies folder inside the Application Folder of your package.

ImportantYou must never try to install files directly in the WinSxS folder or its sub-directories.

The assemblies can be part of your application, in which case they should be added/found in the Assembly page from your Advanced Installer project. In the WinSxS folder you can also find assemblies installed by Microsoft redistributables, like VC runtimes. It is easy to identify them as usually the filenames contains the string “microsoft.vc“.

In case the assemblies are part of a Microsoft runtime package you must either add that runtime as a merge module, in Merge Modules page, or as a feature-based prerequisite in Prerequisites page. Or make sure the runtimes are already deployed on the machines where you plan to deploy this new package.

To identity which redistributable you need, open the manifest file of the assembly, usually located in the folder WinSxS\Manifests, with a text editor.

In all of the above cases, the last step you must do is to delete the folder WinSxS and all its contents from Files and Folders page, then rebuild the package.