कुछ लोगों को लगता है कि विधानसभा की तारीख का निर्माण धारण नहीं करता है:
[assembly: AssemblyVersion("1.0.*")]
आप के साथ एक अनुमानित निर्माण तिथि प्राप्त कर सकते हैं लेकिन आप जानते हैं कि वे क्या गलत हैं, आप PE header से निष्पादन योग्य फ़ाइल में एम्बेड किए गए लिंकर टाइमस्टैम्प को पुनर्प्राप्त कर सकते हैं, जैसे कि निम्न कार्य कर सकता है (मैंने स्वयं कोड का परीक्षण नहीं किया है)
private DateTime RetrieveLinkerTimestamp()
{
string filePath = System.Reflection.Assembly.GetCallingAssembly().Location;
const int c_PeHeaderOffset = 60;
const int c_LinkerTimestampOffset = 8;
byte[] b = new byte[2048];
System.IO.Stream s = null;
try
{
s = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
s.Read(b, 0, 2048);
}
finally
{
if (s != null)
{
s.Close();
}
}
int i = System.BitConverter.ToInt32(b, c_PeHeaderOffset);
int secondsSince1970 = System.BitConverter.ToInt32(b, i + c_LinkerTimestampOffset);
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0);
dt = dt.AddSeconds(secondsSince1970);
dt = dt.AddHours(TimeZone.CurrentTimeZone.GetUtcOffset(dt).Hours);
return dt;
}
या यदि विधानसभा आपके के लिए अपने बेहतर आप निम्नलिखित का उपयोग दृष्टिकोण सरल और आसान है
नीचे करने के लिए पूर्व निर्माण घटना कमांड लाइन जोड़ें:
echo %date% %time% > "$(ProjectDir)\Resources\BuildDate.txt"
संसाधन के रूप में इस फाइल को जोड़ें, अब आपके पास अपने संसाधनों में 'BuildDate' स्ट्रिंग।
मैं से this question
स्रोत
2014-01-10 05:22:21
हाय, मैं इस कोड के साथ करने की कोशिश की, लेकिन मैं अशक्त आ रहा है मेरे मामले स्थान location.in की त्रुटि हो रही है ... इसलिए, मैं क्या करना है ? –