2013-07-17 7 views
22

नमस्ते फिर सब लोग,टेक्स्टबॉक्स में प्रकाशित संस्करण कैसे दिखाना है?

एक और दिलचस्प सवाल। फिलहाल जब भी मैं इसे प्रकाशित करता हूं, तो मैं अपने एप्लिकेशन में वर्जन फ़ील्ड (टेक्स्टबॉक्स) मैन्युअल रूप से अपडेट कर रहा हूं। मैं सोच रहा हूं कि मेरे आवेदन को कहीं से उस डेटा को प्राप्त करने का तरीका है और इसे मेरे लिए बॉक्स में प्रदर्शित करना है। मैं वीएस2012 का उपयोग कर रहा हूं और मुझे यकीन है कि सी # में इसे कैसे प्राप्त किया जाए। नीचे VS2012 गुण विंडो का एक स्क्रीनशॉट है जिसके बारे में मैं बात कर रहा हूं।

Publish image from VS2012

नई छवि:

enter image description here

उत्तर

11

की ToString अतिभारित उपयोग कर सकते हैं भूल जाते हैं आवेदन networkdeployed है अन्यथा यह डिबग मोड में काम नहीं करेगा जांच करने के लिए न करें।

if (ApplicationDeployment.IsNetworkDeployed) 
{ 
    this.Text = string.Format("Your application name - v{0}", ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString(4)); 
} 
+0

'IsNetworkDeployed' झूठी रिटर्न .. समस्या क्या हो सकती है? – jackjop

+1

जब आप आईडीई के तहत डीबग संस्करण चला रहे हैं, तो परिभाषा के अनुसार आप नेटवर्क पर तैनात नहीं होंगे, और 'एप्लिकेशन डिप्लॉयमेंट.क्यूरेंट डिप्लॉयमेंट। कंटेंटवर्सन' 'सिस्टम। डिप्लॉयमेंट.एप्लिकेशंस.विवाइड डिप्लॉयमेंट एक्सेप्शन' फेंक देगा, यही कारण है कि आपको ' IsNetworkDeployed'। परीक्षण करने के लिए यह काम कर रहा है, इसे नेटवर्क पर प्रकाशित करें और फिर इसे तैनात करें! वैकल्पिक रूप से, आप @Christos Lytras के उत्तर के अनुसार 'Application.ProductVersion' को आजमा सकते हैं। – woodvi

15

इस प्रयास करें: डी-संदर्भ कर सकते हैं

using System.Deployment.Application; 

public Version AssemblyVersion 
{ 
    get 
    { 
     return ApplicationDeployment.CurrentDeployment.CurrentVersion; 
    } 
} 

फिर गेटर संपत्ति के लिए फोन करने वाले Major, Minor, Build और Revision गुण, इस तरह:

YourVersionTextBox.Text = AssemblyVersion.Major.ToString() + "." + AssemblyVersion.Minor.ToString() + "." + AssemblyVersion.Build.ToString() + "." + AssemblyVersion.Revision.ToString(); 
+0

मैं कोशिश ब्लॉक में अपने सुझाव का प्रयास किया, लेकिन applicationdeployment एक त्रुटि "system.windows.forms.application applicationdeployment के लिए एक परिभाषा शामिल नहीं है" हो रही है "का उपयोग" वर्गों –

+2

करो सहित के बाद भी आप के लिए एक संदर्भ है आपके विंडोज फॉर्म प्रोजेक्ट में 'System.Deployment.dll'? –

+0

मैं वास्तव में करता हूं, जो मुझे परेशान लगता है कि इसमें इसके साथ समस्याएं हैं। –

7

इसके अलावा हम System.Version

using System.Deployment.Application; 

public Version AssemblyVersion 
{ 
    get 
    { 
     return ApplicationDeployment.CurrentDeployment.CurrentVersion; 
    } 
} 


YourVersionTextBox.Text = AssemblyVersion.ToString(1); // 1 - get only major 
YourVersionTextBox.Text = AssemblyVersion.ToString(2); // 1.0 - get only major, minor 
YourVersionTextBox.Text = AssemblyVersion.ToString(3); // 1.0.3 - get only major, minor, build 
YourVersionTextBox.Text = AssemblyVersion.ToString(4); // 1.0.3.4 - get only major, minor, build, revision 
0

आप ApplicationDeployment की कोई त्रुटि मिलती है, तो आप यह कोशिश कर सकते हैं:

वैश्विक संस्करण Program के माध्यम से पहुँचने के लिए, अंदर Program वर्ग की घोषणा:

private static Version version = new Version(Application.ProductVersion); 

public static Version Version 
{ 
    get 
    { 
     return version; 
    } 
} 
अब आप Program.Version कहीं भी उपलब्ध

: कार्यक्रम में और आप इस तरह संस्करण जानकारी प्राप्त करने के लिए उपयोग कर सकते हैं 43,210
संबंधित मुद्दे