2017-02-22 10 views
1

Я хочу добавить версию продукта в форму. [assembly: AssemblyVersion("1.0.*")]Visual Studio Получить Auto Increment Версия продукта

string version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); 

Это решение, которое я нашел, и который будет работать. Но версия будет похожа на «1.0.6262.26540». Могу ли я изменить правило или могу ли я получить версию публикации, которую Visual Studio генерирует программно? Publish Version generated by Visual Studio

+0

[Application.ProductVersion] (https://msdn.microsoft.com/en-US/library/system.windows.forms.application.productversion (v = vs.110) .aspx)? – Fildor

+0

Это не то, что я ищу. Application.ProductVersion будет иметь тот же результат: 1.0.6262.26540. Я хочу, чтобы версия была 1.0.0.12 – itskajo

+0

Можете ли вы посмотреть в AssemblyInfo.cs и проверить, что там для Версии? – Fildor

ответ

2

Вы можете использовать ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString(). Однако это будет работать, только если вы используете версию вашей программы, установленную установщиком издателя ClickOnce (ApplicationDeployment.IsNetworkDeployed возвращает true).

Когда вы начинаете сборку сборки напрямую (например, во время отладки), вы получите InvalidDeploymentException при попытке получить доступ к свойству CurrentDeployment. Для защиты от этого, вы можете использовать что-то вроде этого:

string CurrentVersion 
{ 
    get 
    { 
     return ApplicationDeployment.IsNetworkDeployed 
      ? ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString() 
      : "1.0.0.0"; // Fallback version string, or retrieve from assembly as in your question 
    } 
} 

Если вы не с помощью ClickOnce Опубликовать функцию, чтобы распространять свое программное обеспечение Я не уверен, что вы можете ожидать, чтобы получить доступ к «Publish Version».

+0

Я использую ClickOnce Publisher: D, но я не могу найти ApplicationDeployment, какое пространство имен я должен добавить? – itskajo

+1

@itskajo [System.Deployment.Application] (https://msdn.microsoft.com/de-de/library/system.deployment.application.applicationdeployment (v = vs.110) .aspx) – Fildor