發表文章

目前顯示的是 5月, 2011的文章

用VirtualSVN Server架Subversion,用MSBuild取出程式碼

最近想放棄VSS,改用SubVersion。所以就找了一個專案來試一下。要用SubVersion來管理程式碼是蠻簡單的。如果你是用Visual Studio的話,可以使用Ankh。它可以整合到Visual Studio中並使用SubVrsion來管理程式碼。 至於SubVersion的Server端,最方便使用的應該就是 VirtualSVN Server 了吧。只要下載並安裝就可以了。 如果要使用MSBuild來進行專案建置的話,原本的MSBuild並不支援SubVersion,其實就連VSS它也不支援。這些都必須取得第三方套件來用,才能由這些程式碼管理工具中取得程式碼來進行編譯。所以可以去取得 MSBuildTasks 套件來安裝使用。 老實說在MSBuildTasks中的說明文件,它只有說明這些套件的一些屬性及方法。完全沒有範例。實在很難體會如何去使用它來透過SubVersion Server下載程式碼。所以就到網路上找了一些資料,可是 這篇文件中的MSBuild專案檔好像也是不行 。因為它沒有指定Svn.exe的路徑,可能是因為它不是用VirtualSVN Server吧。 後來才發現, 原來要指定這個路徑才行 。改了一下果然就可以下載了。只是一開始以為要用SvnUpdate這個指令,因為我只是想更新程式碼,而不是想要簽出。但後來發現要取得程式碼的話,還是要用 SvnCheckout才行。 MSBuild xml檔如下: < Project xmlns ="http://schemas.microsoft.com/developer/msbuild/2003" > <!-- Version : 1.0 Revision: --> < PropertyGroup > < RootDir > ./ </ RootDir > < SlnName > TX4 </ SlnName > < ExtProgramPath > D:\Ext Programs\ </ ExtProgramPath > < SvnVersion ></ SvnVersion > <

加速開啟SQL Management Studio的速度

在網路上看到有人說可以 加快開啟SQL Management Studio速度 的方式。試了一下還真的可以很快地開啟SQL Managment Studio。它的方式是在hosts檔案中加入一行: 127.0.0.1  crl.microsoft.com 看來就是讓有需要查詢crl.microsoft.com的程式,直接就連回本機了。 只是 查詢crl.microsoft.com的用意為何 呢? One issue that can cause this problem is that if the server does not have access to the internet, then the .NET framework can't access the crl.microsoft.com website to verify that the digital signatures used to sign the binaries for managed applications are valid.  看來是為了要驗証數位簽章的正確性。如果你確定是正確的,那就不用去檢查了吧。或是你根本就無法查詢crl.microsoft.com的話,那也不用查了。可省下開啟的時間。

實作C# Form的登出再重新登入功能

一般在開發應用程式時都會在執行程式時先顯示一個對話視窗要求使用者輸入登入資訊。正確後再登入到主畫面中。 在主畫面中也會登供一個登出的功能,以便讓使用者重新登入。看是用其它的使用者帳號登入或是登入到不同的環境中。 不過在C#中好像沒有辦法直接支援這種登出登入模式。所以必須自行實作。目前我實作的方式就是在主視窗中宣告一個公用變數來記錄是否要進行重新登入,並接收FormClosiing事件詢問使用者是否要重新登入。 程式碼如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace TestFormLogout { public partial class Form1 : Form { /// <summary> /// 記錄是否要進行重新登入 /// </summary> public bool isReLogin = false ; public Form1() { InitializeComponent(); } private void btnLogout_Click( object sender, EventArgs e) { this .Close(); } private void OnClosing( object sender, FormClosingEventArgs e) { if (MessageBox.Show( "是否重新登入?" , "重新登入" , MessageBoxButtons.YesNo) == DialogResult.Yes)