經常看一些的程序,有些一個解決方案帶有多個項目,由於代碼比較多,多人開發,所以好多vs.net下的工程是用source safe進行版本控制的。而用source safe進行版本控制需要局域網路徑共享,因此好多項目換一台機器打開會出現一些問題,比如“解決方案看起來是受源代碼管理,但無法找到它的綁定信息……”之類的提示信息很多。有時候修改了代碼還保存不了,所以想把他去掉,下面是對項目管理前後的一些對比。
一、工程項目比較
同沒有受Source Safe代碼管理的工程相比:
1. 多出了.scc、.vssscc和.vspscc文件;
2. C#項目文件(.csproj)裡面添加了幾行標簽:
SccProjectName = "SAK"
SccLocalPath = "SAK"
SccAuxPath = "SAK"
SccProvider = "SAK"
3.在解決方案文件(.sln)中,中增加了如下節點原素:
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 4
SccLocalPath0 = .
……
SccLocalPath3 = SUBSCRIBE_TOOLS
CanCheckoutShared = false
EndGlobalSection
二、編寫實現的類
既然文件增多了,還有有些文件被修改,所以想通過編程把他修改回原樣,這樣可能可以去掉那些提示信息,所以就寫了下面的代碼。
file://***************************************
// 程序:鄭佐 [email protected] 2004/06/10
// 功能:去除C#.net的原代碼Source safe 管理
file://***************************************
using System;
using System.IO;
using System.Text;
using System.Threading;
namespace ZZ
{
/// <summary>
/// 操作信息事件代理
/// </summary>
public delegate void OperateNotifyHandler(object sender,VssEventArgs e);
/// <summary>
/// VssConverter 處理解決方案或項目的SourceSafe關聯。
/// </summary>
public class VssConverter
{
file://操作根目錄
private string operatePath;
/// <summary>
/// 操作信息事件
/// </summary>
public event OperateNotifyHandler OperateNotify;
/// <summary>
/// 線程結束通知事件
/// </summary>
public event EventHandler ThreadCompleted;