NSIS has a Name variable that you define in the script:
Name \"MyApp\"
It defines the name of the installer, that gets displayed as the win
You can achieve this using MSBuild.
Just add your .nsi script to project and set this file property
Copy to Output Directory value Copy always or Copy if newer.
Add to your project file (e.g. .csproj or .vbproj) following code (suppose your nsi script has name installer.nsi)
Use $Version variable in your nsi script:
# define installer name
OutFile "MyApp-${Version}.exe"