I'm not sure if there is or isn't a Framework mechanism for this.
But you may be able to handle this manually yourself. If you or the publishing wizard is updating your Version # for each build, you can store the Version # from the last time the app ran on the machine locally (Registry/AppData/Whatever) and then compare that with your current version #. If the version #'s don't match you can set the local 'last run version' and then display the release notes.
You can fetch the version for app using something like:
private string version
{
get
{
System.Reflection.Assembly _assemblyInfo = System.Reflection.Assembly.GetExecutingAssembly();
string ourVersion = string.Empty;
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
ourVersion = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
}
else
{
if (_assemblyInfo != null)
{
ourVersion = _assemblyInfo.GetName().Version.ToString();
}
}
return ourVersion;
}
}