亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cs

?? SharpDevelop2.0.0 c#開發免費工具
?? CS
字號:
/*
 * Created by SharpDevelop.
 * User: Daniel Grunwald
 * Date: 21.07.2005
 * Time: 12:00
 */
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Collections.Specialized;

namespace UpdateAssemblyInfo
{
	// Updates the version numbers in the assembly information.
	class MainClass
	{
		static Regex AssemblyVersion = new Regex(@"AssemblyVersion\(.*\)]");
		static Regex BindingRedirect = new Regex(@"<bindingRedirect oldVersion=""2.0.0.1"" newVersion=""[\d\.]+""/>");
		const string mainConfig = "Main/StartUp/Project/Configuration/";
		
		public static int Main(string[] args)
		{
			try {
				if (args.Length != 1) {
					PrintHelp();
					return 1;
				}
				
				if (!File.Exists("SharpDevelop.sln")) {
					if (File.Exists("..\\src\\SharpDevelop.sln")) {
						Directory.SetCurrentDirectory("..\\src");
					}
				}
				if (!File.Exists("SharpDevelop.sln")) {
					Console.WriteLine("Working directory must be SharpDevelop\\src or SharpDevelop\\bin!");
					return 2;
				}
				string arg = args[0];
				if (arg == "StartupOnly") {
					RetrieveRevisionNumber();
					UpdateStartup();
				} else if (arg == "Libraries") {
					RetrieveRevisionNumber();
					UpdateLibraries(GetMajorVersion() + "." + revisionNumber);
				} else if (arg == "ResetLibraries") {
					UpdateLibraries("2.0.0.1");
				} else {
					PrintHelp();
					return 1;
				}
				return 0;
			} catch (Exception ex) {
				Console.WriteLine(ex);
				return 3;
			}
		}
		
		static void PrintHelp()
		{
			Console.WriteLine("Application must be started with 1 argument:");
			Console.WriteLine("UpdateAssemblyInfo StartupOnly    // updates version info in Startup project");
			Console.WriteLine("UpdateAssemblyInfo Libraries      // updates all versions in the libraries, but not in Startup");
			Console.WriteLine("UpdateAssemblyInfo ResetLibraries // resets versions in the libraries to 2.0.0.1 (use this before committing)");
		}
		
		static void UpdateStartup()
		{
			string content;
			using (StreamReader r = new StreamReader(mainConfig + "AssemblyInfo.template")) {
				content = r.ReadToEnd();
			}
			content = content.Replace("-INSERTREVISION-", revisionNumber);
			if (File.Exists(mainConfig + "AssemblyInfo.cs")) {
				using (StreamReader r = new StreamReader(mainConfig + "AssemblyInfo.cs")) {
					if (r.ReadToEnd() == content) {
						// nothing changed, do not overwrite file to prevent recompilation of StartUp
						// every time.
						return;
					}
				}
			}
			using (StreamWriter w = new StreamWriter(mainConfig + "AssemblyInfo.cs", false, Encoding.UTF8)) {
				w.Write(content);
			}
		}
		
		static string GetMajorVersion()
		{
			string version = "?";
			// Get main version from startup
			using (StreamReader r = new StreamReader(mainConfig + "AssemblyInfo.template")) {
				string line;
				while ((line = r.ReadLine()) != null) {
					const string search = "string Version = \"";
					int pos = line.IndexOf(search);
					if (pos >= 0) {
						int e = line.IndexOf('"', pos + search.Length + 1);
						version = line.Substring(pos + search.Length, e - pos - search.Length);
						break;
					}
				}
			}
			return version;
		}
		
		static void UpdateLibraries(string versionNumber)
		{
			StringCollection col = SearchDirectory("AddIns", "AssemblyInfo.cs");
			SearchDirectory("Main", "AssemblyInfo.cs", col);
			SearchDirectory("Libraries", "AssemblyInfo.cs", col);
			string[] dontTouchList = new string[] {
				"Main/StartUp/Project/", // Startup is special case
				"Libraries/log4net/",
				"Libraries/NUnit.Framework/",
				"Libraries/DockPanel_Src/",
				"AddIns/Misc/Debugger/TreeListView/Project/",
			};
			foreach (string fileName in col) {
				bool doSetVersion = true;
				foreach (string dontTouch in dontTouchList) {
					if (fileName.StartsWith(dontTouch.Replace("/", Path.DirectorySeparatorChar.ToString()))) {
						doSetVersion = false;
						break;
					}
				}
				if (doSetVersion) {
					Console.WriteLine("Set revision to file: " + fileName + " to " + versionNumber);
					SetVersionInfo(fileName, AssemblyVersion, "AssemblyVersion(\"" + versionNumber + "\")]");
				}
			}
			SetVersionInfo("Main/StartUp/Project/SharpDevelop.exe.config", BindingRedirect, "<bindingRedirect oldVersion=\"2.0.0.1\" newVersion=\"" + versionNumber + "\"/>");
		}
		
		#region SearchDirectory
		static StringCollection SearchDirectory(string directory, string filemask)
		{
			StringCollection collection = new StringCollection();
			SearchDirectory(directory, filemask, collection);
			return collection;
		}
		
		static void SearchDirectory(string directory, string filemask, StringCollection collection)
		{
			try {
				string[] file = Directory.GetFiles(directory, filemask);
				foreach (string f in file) {
					collection.Add(f);
				}
				
				string[] dir = Directory.GetDirectories(directory);
				foreach (string d in dir) {
					if (d.EndsWith("\\.svn")) continue;
					SearchDirectory(d, filemask, collection);
				}
			} catch (Exception ex) {
				Console.WriteLine(ex);
			}
		}
		#endregion
		
		static void SetVersionInfo(string fileName, Regex regex, string replacement)
		{
			string content;
			using (StreamReader inFile = new StreamReader(fileName)) {
				content = inFile.ReadToEnd();
			}
			string newContent = regex.Replace(content, replacement);
			if (newContent == content)
				return;
			using (StreamWriter outFile = new StreamWriter(fileName, false, Encoding.UTF8)) {
				outFile.Write(newContent);
			}
		}
		
		#region Retrieve Revision Number
		static string revisionNumber = "0";
		static string ReadRevisionFromFile()
		{
			try {
				using (StreamReader reader = new StreamReader(@"..\REVISION")) {
					return reader.ReadLine();
				}
			} catch (Exception e) {
				Console.WriteLine(e.Message);
				Console.WriteLine();
				Console.WriteLine("The revision number of the SharpDevelop version being compiled could not be retrieved.");
				Console.WriteLine();
				Console.WriteLine("Build continues with revision number '9999'...");
				try {
					Process[] p = Process.GetProcessesByName("msbuild");
					if (p != null && p.Length > 0) {
						System.Threading.Thread.Sleep(3000);
					}
				} catch {}
				return "9999";
			}
		}
		static void RetrieveRevisionNumber()
		{
			// we use NSvn to be independent from the installed subversion client
			// NSvn is a quite big library (>1 MB).
			// We don't want to have it twice in the repository, so we must use the version in the
			// subversion addin directory without copying it to the UpdateAssemblyInfo directory.
			// That means we have to use reflection on the library.
			string oldWorkingDir = Environment.CurrentDirectory;
			try {
				// Set working directory so msvcp70.dll and msvcr70.dll can be found
				Environment.CurrentDirectory = Path.Combine(oldWorkingDir, "AddIns\\Misc\\SubversionAddIn\\RequiredLibraries");
				Assembly asm = Assembly.LoadFrom(Path.Combine(Environment.CurrentDirectory, "NSvn.Core.dll"));
				Type clientType = asm.GetType("NSvn.Core.Client");
				object clientInstance = Activator.CreateInstance(clientType);
				object statusInstance = clientType.InvokeMember("SingleStatus",
				                                                BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public,
				                                                null, clientInstance,
				                                                new object[] { oldWorkingDir });
				Type statusType = statusInstance.GetType();
				object entryInstance = statusType.InvokeMember("Entry",
				                                               BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.Public,
				                                               null, statusInstance, new object[0]);
				Type entryType = entryInstance.GetType();
				int revision = (int)entryType.InvokeMember("Revision",
				                                           BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.Public,
				                                           null, entryInstance, new object[0]);
				revisionNumber = revision.ToString();
			} catch (Exception e) {
				Console.WriteLine("Reading revision number with NSvn failed: " + e.Message);
			} finally {
				Environment.CurrentDirectory = oldWorkingDir;
			}
			if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") {
				revisionNumber = ReadRevisionFromFile();
			}
			if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") {
				throw new ApplicationException("Error reading revision number");
			}
		}
		#endregion
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜欧美电影在线观看| 在线亚洲精品福利网址导航| 国产在线看一区| 久久99精品国产.久久久久久| 亚洲a一区二区| 五月婷婷综合网| 亚洲成人自拍网| 亚洲超丰满肉感bbw| 青青草国产成人99久久| 美国十次了思思久久精品导航| 蜜臀av性久久久久蜜臀aⅴ流畅| 奇米一区二区三区| 国产一区二区三区| 不卡一区二区三区四区| 91无套直看片红桃| 欧美性一区二区| 欧美一区二区免费视频| 精品国产青草久久久久福利| 久久女同精品一区二区| 中文字幕制服丝袜一区二区三区| 亚洲天堂福利av| 污片在线观看一区二区| 看国产成人h片视频| 国产成人无遮挡在线视频| 91玉足脚交白嫩脚丫在线播放| 日本精品视频一区二区| 欧美一区二区三区在线看| 久久一区二区三区国产精品| 国产精品素人视频| 亚洲中国最大av网站| 蜜臀av一区二区在线免费观看| 黄页视频在线91| 色综合色狠狠天天综合色| 欧美日本韩国一区二区三区视频| 精品久久久久久最新网址| 国产精品久久久久久久久免费樱桃| 亚洲精品日韩专区silk| 丝袜亚洲精品中文字幕一区| 国产精品一二三四五| 色哟哟一区二区在线观看 | 亚洲人一二三区| 午夜欧美2019年伦理| 国产成人精品免费| 欧美日韩国产首页| 欧美激情艳妇裸体舞| 亚洲国产裸拍裸体视频在线观看乱了| 日本午夜一本久久久综合| 国产 欧美在线| 欧美精品色综合| 国产精品视频一二三区| 亚洲aⅴ怡春院| 国产成人小视频| 欧美裸体bbwbbwbbw| 国产精品色婷婷| 美女爽到高潮91| 91美女片黄在线观看91美女| 日韩欧美在线网站| 亚洲制服欧美中文字幕中文字幕| 国内精品伊人久久久久影院对白| 欧美亚洲日本国产| 中文在线资源观看网站视频免费不卡| 午夜亚洲国产au精品一区二区| 成人av片在线观看| 久久一日本道色综合| 人人精品人人爱| 色噜噜久久综合| 国产精品乱码一区二区三区软件| 蜜桃视频一区二区三区| 欧美亚洲综合久久| 亚洲色图19p| 丰满少妇久久久久久久| 欧美电视剧免费全集观看| 亚洲一区二区精品久久av| 北条麻妃国产九九精品视频| 精品粉嫩aⅴ一区二区三区四区| 亚洲成av人片一区二区梦乃| 色噜噜狠狠色综合欧洲selulu| 国产亚洲一区二区在线观看| 久久国产人妖系列| 91精品婷婷国产综合久久竹菊| 亚洲精品成人在线| av不卡在线观看| 欧美国产视频在线| 国产乱子伦视频一区二区三区 | 国产网红主播福利一区二区| 秋霞影院一区二区| 欧美日韩小视频| 一区二区三区美女| 91在线porny国产在线看| 国产精品免费久久久久| 国产成人在线电影| 欧美激情一区二区| 国产成人综合网站| 国产丝袜欧美中文另类| 国产成人一区在线| 欧美国产精品一区二区三区| 国产成人综合在线观看| 国产夜色精品一区二区av| 国产精品18久久久久久vr| 亚洲精品一区二区三区四区高清| 毛片一区二区三区| 日韩精品一区二区三区在线 | 欧美午夜精品一区| 亚洲国产美女搞黄色| 欧美日韩精品一区二区三区四区| 亚洲国产三级在线| 欧美日韩久久不卡| 日韩va亚洲va欧美va久久| 337p亚洲精品色噜噜| 免费观看在线色综合| 2021国产精品久久精品| 国产成人午夜99999| 国产精品国产三级国产普通话蜜臀| 丰满亚洲少妇av| 亚洲免费观看高清完整版在线观看熊| 色综合久久久久久久久| 亚洲电影视频在线| 3d成人动漫网站| 国产一区二区视频在线| 国产精品女主播av| 欧美三级蜜桃2在线观看| 日韩va欧美va亚洲va久久| 久久人人爽爽爽人久久久| 成人app软件下载大全免费| 亚洲欧美国产三级| 欧美日韩成人一区二区| 久久精品免费看| 国产精品美女一区二区三区| 一本一道久久a久久精品| 日韩中文字幕区一区有砖一区 | 久久久一区二区三区| 99精品久久只有精品| 亚洲成人中文在线| 久久亚洲综合av| 97se亚洲国产综合自在线不卡| 午夜精品一区二区三区电影天堂| 欧美www视频| 99久久久久久99| 日韩和欧美一区二区三区| 久久亚区不卡日本| 91国产免费看| 国产麻豆精品久久一二三| 亚洲精品日韩综合观看成人91| 欧美一区二区三区四区视频| 国产91富婆露脸刺激对白| 亚洲成人动漫精品| 国产亚洲欧美一级| 欧美三级在线看| 国产成人综合精品三级| 亚洲小说春色综合另类电影| 国产亚洲精久久久久久| 欧美日韩亚洲国产综合| 成人晚上爱看视频| 日韩av中文字幕一区二区三区| 国产日韩成人精品| 制服丝袜国产精品| 9久草视频在线视频精品| 免费高清成人在线| 亚洲一区二区三区中文字幕| 久久这里只有精品6| 欧美日韩免费观看一区三区| 福利一区二区在线| 久久精品国产在热久久| 亚洲一区二区免费视频| 国产精品久久久久一区| 日韩欧美一区二区三区在线| 色婷婷久久久久swag精品 | 久久久综合激的五月天| 欧美日韩国产影片| 97se亚洲国产综合自在线观| 国产精品一品视频| 强制捆绑调教一区二区| 一区二区三区在线视频免费观看| 精品久久久影院| 欧美精品久久久久久久久老牛影院| 成人av一区二区三区| 久久黄色级2电影| 男男成人高潮片免费网站| 亚洲另类一区二区| 中文无字幕一区二区三区| 精品三级av在线| 日韩欧美中文一区| 欧美日韩午夜在线视频| 在线中文字幕一区| 白白色亚洲国产精品| 成人午夜精品在线| 国产精品一二三四| 国产中文字幕精品| 免费观看91视频大全| 日韩成人av影视| 偷拍自拍另类欧美| 亚洲福利一二三区| 亚洲美女偷拍久久| 亚洲精品免费看| 亚洲欧美日韩系列| 亚洲人成亚洲人成在线观看图片| 国产精品视频yy9299一区| 国产日韩欧美综合在线| 国产丝袜在线精品| 欧美激情一区二区三区|