VS2010 (older) installer project - two or more obj

2019-02-16 18:56发布

问题:

This installer project was created back in 2004 and upgraded ever since.

There are two offending dll files, which produce a total of 4 errors.

I have searched online for this warning message and did not find a permanent fix (I did manage to make it go away once until I have done something like a clean, or built in Release, and then in Debug).

I also tried cleaning, and then refreshing the dependencies. The duplicated entries are still in there.

I also did not find a good explanation for what this error means.

Additional warnings are of this nature:

Warning 36 The version of the .NET Framework launch condition '.NET Framework 4' does not match the selected .NET Framework bootstrapper package. Update the .NET Framework launch condition to match the version of the .NET Framework selected in the Prerequisites Dialog Box.

So, where is this prerequisites box? I want to make both things agree on .Net 4.0, just having a hard time locating both of them.

回答1:

I assume you are having more then one primary project outputs added to your installer. Furthermore these projects use the DLLs that generate the warnings, you can exclude them easily but as you observed this is not a permanent fix. In my solution I got rid of these warnings permanently by right clicking on the project outputs (that reference the DLLs) and defining an exclude filter (just use the name of the DLL). I do this on all project outputs that reference the DLL. As a final step I add the DLL manually to the installer (this requires the DLL to be in some well defined location (e.g. a lib folder). This way the DLL gets added only once and you got rid of the warning.

Right click on the setup project file, selecting Properties will show a little dialog that has a Prerequisites... button: That answers your second question I guess.



回答2:

If you right click on your solution in the Solution Explorer window, you'll see an option for 'Project Dependencies...' Clicking that option displays a dialog that allows you to set the dependencies between the various components of your solution. Then, if you have the 'Project Start' option set properly (which component in your solution is the startup or primary component), you only need to include the 'Primary Output' of your startup project in the installer, and it will pickup the dependencies and include the DLLs only once in your setup installer. Set all of that up, clean your solution, rebuild, and then build your installer.