PDA

View Full Version : Missing DLL's When Building With MSBuild



dan_mclean
05-05-2017, 11:34 AM
Hello,

I'm currently trying to build a .NET solution that contains an InstallShield Project and a C# InstallShieldCustom Action. When building the sln in Visual Studio on a machine that has a InstallShield 2016 Pro license, the resulting MSI has everything required for the program to run when finally installed. However, when trying to build the same sln on a machine using MSBuild and has a InstallShield 2016 SAB License, the resulting MSI is missing a DLL (Galasoft.MVVMLight.WPF4.Extras.dll to be exact) and the Custom Action is not included in the installer.

Does MSBuild just not work with Custom Actions and how some dlls are included?

rguggisberg
05-05-2017, 12:01 PM
Yes, MSBuild works with custom actions.
Do you have any other files that are getting placed properly?
Since a SAB machine builds out of a number of 'Build' Folders, the folder structure will almost certainly be different than on your InstallShield machine.
You are probably specifying a source location on the InstallShield machine that does not exist on the SAB machine.
Are you using Path Variable Overrides?
You may need to add one and then make the corresponding change to the build definition.
That could be a bit of a challenge if you have never done it.

dan_mclean
05-05-2017, 01:33 PM
Yes, MSBuild works with custom actions.
Do you have any other files that are getting placed properly?
Since a SAB machine builds out of a number of 'Build' Folders, the folder structure will almost certainly be different than on your InstallShield machine.
You are probably specifying a source location on the InstallShield machine that does not exist on the SAB machine.
Are you using Path Variable Overrides?
You may need to add one and then make the corresponding change to the build definition.
That could be a bit of a challenge if you have never done it.


1. Yes, the rest of the dlls required are being placed properly, When looking at the MSBuild log with /verbosity:d it shows that the missing dll is not even being detected while building the isproj.



Adding file 'EFCachingProvider.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'EFProviderWrapperToolkit.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'EFTracingProvider.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'EntityFramework.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'GalaSoft.MvvmLight.WPF4.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'Hardcodet.Wpf.TaskbarNotification.dll' that is a dependency of component 'Presentation.Primary_output'


vs the log from a successful build



Adding file 'EFCachingProvider.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'EFProviderWrapperToolkit.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'EFTracingProvider.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'EntityFramework.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'GalaSoft.MvvmLight.Extras.WPF4.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'GalaSoft.MvvmLight.WPF4.dll' that is a dependency of component 'Presentation.Primary_output'
Adding file 'Hardcodet.Wpf.TaskbarNotification.dll' that is a dependency of component 'Presentation.Primary_output'


2. We are currently specifying the Primary Output of a project through a relative path that I confirmed does exist.
3. We are not doing any custom PATH overrides