I am creating a setup msi using a Project Output (Say Project-A), which refers another project (Say Project-B). When i update application using new msi, dll of Project-B does not get updated though latest build contains some changes in Project-B
Note: When i uninstall the application, dll of Project-B remains in installation folder( not deleted).
It's not clear what you mean by "update ... using new msi" but the way you upgrade using Visual Studio installer projects is to increment the setup project's version and accept the changes, which include generating a new ProductCode. RemovePreviousVersions also needs setting to true. This should help and is still relevant:
https://www.simple-talk.com/dotnet/visual-studio/updates-to-setup-projects/
In addition you must increment the file versions of files you need replacing - it's not enough that they are just different.