私が書いたプログラムがあり、そのプログラムについてのボックスを作成しようとしています。最近、プログラムの製品バージョンを 1.00.0003 に更新しました。これをバージョン情報ウィンドウに反映させたいです。
aboutBox の既定の設定では、値 1.0.0.0 が表示されます。これは製品バージョンではなく、アセンブリバージョンです。それ以来、製品バージョンを表示する方法を見つけるためにインターネットを探し回っています。私はこれらすべてを試しました:
{
Assembly assembly = Assembly.GetExecutingAssembly();
FileVersionInfo fileVersionInfo = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fileVersionInfo.ProductVersion;
Debug.WriteLine(version);
Debug.WriteLine(assembly.GetName().Version);
string v = VersionNumber;
Debug.WriteLine(v);
Debug.WriteLine( fileVersionInfo.FileVersion);
Debug.WriteLine(Application.ProductVersion);
Debug.WriteLine(AssemblyProductVersion);
Assembly assembly2 = Assembly.GetEntryAssembly();
FileVersionInfo fileVersionInfo2 = FileVersionInfo.GetVersionInfo(assembly.Location);
string version2 = fileVersionInfo2.ProductVersion;
Debug.WriteLine(version2);
Debug.WriteLine(assembly2.GetName().Version);
return version;
}
private string _ourVersion = "Version: v";
private string VersionNumber
{
get
{
System.Reflection.Assembly _assemblyInfo =
System.Reflection.Assembly.GetExecutingAssembly();
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
_ourVersion += ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
else
{
if (_assemblyInfo != null)
_ourVersion += _assemblyInfo.GetName().Version.ToString();
}
return _ourVersion;
}
}
private static string AssemblyProductVersion
{
get
{
object[] attributes = Assembly.GetExecutingAssembly()
.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false);
return attributes.Length == 0 ?
"" :
((AssemblyInformationalVersionAttribute)attributes[0]).InformationalVersion;
}
}
これらのすべてが 1.0.0.0 を返します (はい、実際に表示されたものではなく、コンソールで出力を探しました) 代わりに、必要な 1.00.0003 を返します。製品バージョンは、InstallShield セットアップの [一般情報] タブで設定されます。インストールすると、[プログラムと機能] に移動すると製品バージョンが 1.00.0003 と表示されるため、プログラムでこの値を取得するのがなぜ難しいのかわかりません。何か案は?