[विजुअल स्टूडियो 2017, .csproj गुण]
अपने पैकेजवर्सन / संस्करण / असेंबली वर्जन प्रॉपर्टी (या किसी अन्य प्रॉपर्टी) को स्वचालित रूप से अपडेट करने के लिए, पहले, एक नया Microsoft.build.Utilities.Task
क्लास बनाएं जो आपके वर्तमान बिल्ड नंबर को प्राप्त करे और अपडेट की गई संख्या वापस भेज दे (मैं सिर्फ उस वर्ग के लिए एक अलग परियोजना बनाने की सलाह देते हैं)।
मैं मैन्युअल रूप से major.minor संख्याओं को अद्यतन करता हूं, लेकिन एमएसबिल्ड को बिल्ड नंबर (1.1। 1 , 1.1। 2 , 1.1। 3 , आदि :)
using Microsoft.Build.Framework;
using System;
using System.Collections.Generic;
using System.Text;
public class RefreshVersion : Microsoft.Build.Utilities.Task
{
[Output]
public string NewVersionString { get; set; }
public string CurrentVersionString { get; set; }
public override bool Execute()
{
Version currentVersion = new Version(CurrentVersionString ?? "1.0.0");
DateTime d = DateTime.Now;
NewVersionString = new Version(currentVersion.Major,
currentVersion.Minor, currentVersion.Build+1).ToString();
return true;
}
}
फिर अपने हाल ही में बनाए गए कार्य को MSBuild प्रक्रिया पर कॉल करें जो आपके .csproj फ़ाइल पर अगला कोड जोड़ रहा है:
...
...
..
1.1.4
..
विजुअल स्टूडियो पैक प्रोजेक्ट विकल्प चुनते समय (बिल्ड करने से पहले कार्य निष्पादित करने के लिए बस पहले लक्ष्य> = "बिल्ड करें"
में बदलें) नया संस्करण संख्या, और XmlPoke कार्य तदनुसार आपके .csproj प्रॉपर्टी को अपडेट करेगा (हाँ, यह फ़ाइल को संशोधित करेगा)।
NuGet पुस्तकालयों के साथ काम करते समय, मैं पिछले उदाहरण को अगले निर्माण कार्य को जोड़कर पैकेज को NuGet रिपोजिटरी में भी भेजता हूं।
c:\nuget\nuget
is where I have the NuGet client (remember to save your NuGet API key by calling nuget SetApiKey
or to include the key on the NuGet push call).
बस अगर यह किसी की मदद करता है ^ _ ^।