IrA*_*App 8 c# desktop-application visual-studio
我想展示我的桌面应用程序的发布版本.我正在尝试使用此代码:
_appVersion.Content = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
Run Code Online (Sandbox Code Playgroud)
问题是我没有得到我在项目属性中的发布版本.下面是它的截图:
但我得到了3.0.0.12546
.有人知道问题在哪里吗?
我也遇到了这个问题,发现设置的版本号AssemblyInfo.cs
干扰了以下设置Properties
:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Run Code Online (Sandbox Code Playgroud)
我通常会评论这些行AssemblyInfo
并将其替换为
[assembly: AssemblyVersion("1.0.*")]
Run Code Online (Sandbox Code Playgroud)
检查这些值是否已硬编码到您的AssemblyInfo
文件中.
有关自动版本控制的有趣讨论,请参阅此SO问题.检查时AssemblyInfo.cs
,确保自动增量(*
- 如果使用它)仅针对目标AssemblyVersion
而不是AssemblyFileVersion
.
调试程序时,可以检查程序集的属性
\bin\Release\app.publish
Run Code Online (Sandbox Code Playgroud)
在Details
选项卡下,检查版本号.这是否与您在VS中指定的任何设置相匹配?
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
Run Code Online (Sandbox Code Playgroud)
将获取 AssemblyInfo.cs 文件中存在的程序集版本,要获取您在发布对话框中设置的发布版本,您应该使用
System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion
Run Code Online (Sandbox Code Playgroud)
但请注意,您必须添加对 System.Deployment 的引用,并且只有在您通过右键单击项目文件并单击发布来发布应用程序后,它才会起作用,每次发布时,它都会增加修订版。
如果您尝试在调试模式下调用上面的行,它将不起作用并且会抛出异常,因此您可以使用以下代码:
try
{
return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion;
}
catch(Exception ex)
{
return Assembly.GetExecutingAssembly().GetName().Version;
}
Run Code Online (Sandbox Code Playgroud)
我们可以创建一个属性,该属性将返回如下所述的Version信息,并且我们可以使用该属性。
public string VersionLabel
{
get
{
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
Version ver = System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion;
return string.Format("Product Name: {4}, Version: {0}.{1}.{2}.{3}", ver.Major, ver.Minor, ver.Build, ver.Revision, Assembly.GetEntryAssembly().GetName().Name);
}
else
{
var ver = Assembly.GetExecutingAssembly().GetName().Version;
return string.Format("Product Name: {4}, Version: {0}.{1}.{2}.{3}", ver.Major, ver.Minor, ver.Build, ver.Revision, Assembly.GetEntryAssembly().GetName().Name);
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7618 次 |
最近记录: |