Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在代码隐藏中读取WPF发布版本号_C#_Wpf_Xaml_Code Behind - Fatal编程技术网

C# 如何在代码隐藏中读取WPF发布版本号

C# 如何在代码隐藏中读取WPF发布版本号,c#,wpf,xaml,code-behind,C#,Wpf,Xaml,Code Behind,我想在启动窗口中读取和显示WPF应用程序发布版本号,在发布选项卡的项目属性中有发布版本,如何获取该版本并在WPF窗口中显示它 提前感谢使用访问程序集版本并在UI中显示 Assembly.GetExecutingAssembly().GetName().Version.ToString(); 将对System.Deployment库的引用添加到项目中,并根据您的代码调整此代码段: using System.Deployment.Application; 及 如注释中所述,调试期间无法获得发布版

我想在启动窗口中读取和显示WPF应用程序发布版本号,在发布选项卡的项目属性中有发布版本,如何获取该版本并在WPF窗口中显示它


提前感谢

使用访问程序集版本并在UI中显示

Assembly.GetExecutingAssembly().GetName().Version.ToString();

将对
System.Deployment
库的引用添加到项目中,并根据您的代码调整此代码段:

using System.Deployment.Application;

如注释中所述,调试期间无法获得发布版本,因此我建议使用
string version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); 

Console.WriteLine(version);
System.Reflection.Assembly.GetEntryAssembly().GetName().Version 为了避免从dll获取版本,
将始终从当前的“exe”获取版本。

感谢您的时间,虽然我的应用程序版本为1.0.0.158,但它仍然有效,但始终将版本设置为1.0.0.0@AbdusalamElsherif你的版本在哪里?在assemblyinfo中?以这种方式添加程序集信息肯定有效。@AbdulsalamElsharif,我认为这是因为您使用的是来自另一个项目(另一个程序集)的代码段。例如,如果您使用“发布”方法进行部署,则您的主Windows应用程序版本为1.0.2,但dll项目为1.0.0.AssemblyVersion不工作。如果您从检查ApplicationDeployment.IsNetworkDeployed开始,这将让您知道当前部署是否可用。这样,您不必处理异常,但可以生成一个简单的if-else。这回答了问题的一半,但没有回答在WPF显示中显示异常的部分。如何绑定组件以使用此版本变量?这在.net core中仍然有效吗?@hybrid2102它工作得很好。我在WPF.NETCore3.1上使用了这些代码。我在Project->Properties->Package选项卡->Package Version中添加了文本版本1.1.1.1。我可以在运行时得到正确的字符串(包括调试)。我不明白为什么这个回复和下面的回复描述了相同的答案,但是一个get+17,而另一个get-1@Smith.Lai因为答案是一样的,除了两年后。
string version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); 

Console.WriteLine(version);