デフォルトでVSSを取得できないので、拡張パックを導入
CommunityTaskとExtensionPackの2つがあったけど
CommunityTaskは更新が止まってそうだし
ちょうど2009/03/15にExtensionPackが更新されたのでExtensionPackにした
・対象
WindowsXP SP3
NetFramwork3.5
VisualStudio 2005 SP1 (VC++)
SourceSafe 6
ExtensionPack 3.5.2.0
・ダウンロード
http://msbuildextensionpack.codeplex.com/
・インストール
msiを叩くだけ
・ビルドファイル作成
ファイル名:Build.proj
タスク:VssGet
<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="VssGet">
<MSBuild.ExtensionPack.VisualStudio.SourceSafe TaskAction="Get" Database="C:\SourceSafe\" UserName="UserName" FilePath="$/TEST" Arguments="-GL. -R"/>
</Target>
</Project>
・実行
外部からタスクを呼ぶ時は「/t:」オプションを使う
D:\test>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe Build.proj /t:VssGet
Microsoft(R) Build Engine Version 2.0.50727.3053
[Microsoft .NET Framework, Version 2.0.50727.3082]
Copyright (C) Microsoft Corporation 2005. All rights reserved.
2009/04/22 16:59:46 にビルドを開始しました。
__________________________________________________
プロジェクト "D:\test\Build.proj" (VssGet ターゲット):
ターゲット VssGet:
D:\test\Build.proj(19,9): error : Win32Exception: 指定されたファイルが見つかりません。
D:\test\Build.proj(19,9): error :
プロジェクト "Build.proj" 内のターゲット "VssGet" のビルドが終了しました。 -- 失敗
プロジェクト "Build.proj" のビルドが終了しました。 -- 失敗
ビルドに失敗しました。
D:\test\Build.proj(19,9): error : Win32Exception: 指定されたファイルが見つかりません。
D:\test\Build.proj(19,9): error :
0 警告
1 エラー
経過時間 00:00:00.10
ありゃ
なんだか失敗
これだけじゃ原因がわからん…
ヘルプも見たけどさっぱりわからん
http://msbuildextensionpack.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18970#DownloadId=61972
・調査
やっぱコードでしょ♪
ってことで、C#なんてわからんがソースコードを眺めてみる
http://msbuildextensionpack.codeplex.com/SourceControl/changeset/view/22589#498119
すると「ss.exe」の文字発見♪
ExtensionPackはCOM経由でなくてss.exe直かい!
HudsonやCommunityTaskはCOM経由だったような…
まぁEXE直接の方が早そうな気もする(憶測)
SourceSafeはインストールしても、環境変数PATHに追加しないので
自分で追加する必要があり
・修正
環境変数にVSSまでのパスを追加する
OSで設定してもいいけど、今回はMSBuild上で設定
<Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="VssGet">
<MSBuild.ExtensionPack.Computer.EnvironmentVariable TaskAction="Set" Variable="PATH" Value="C:\Program Files\Microsoft Visual Studio\VSS\win32"/>
<MSBuild.ExtensionPack.VisualStudio.SourceSafe TaskAction="Get" Database="C:\SourceSafe\" UserName="UserName" FilePath="$/TEST" Arguments="-GL. -R"/>
</Target>
</Project>
・再実行
C:\test>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\msbuild.exe Build.proj
Microsoft(R) Build Engine Version 2.0.50727.3053
[Microsoft .NET Framework, Version 2.0.50727.3082]
Copyright (C) Microsoft Corporation 2005. All rights reserved.
2009/04/22 16:58:43 にビルドを開始しました。
__________________________________________________
プロジェクト "D:\test\Build.proj" (VssGet ターゲット):
ターゲット VssGet:
Setting Environment Variable: "PATH" for target "Process" to "C:\Program Files\Microsoft Visual Studio\VSS\win32".
$/TEST:
test.txt を取得しています。
ビルドに成功しました。
0 警告
0 エラー
経過時間 00:00:08.46
よしよし♪
にしても、使い方がどこにものってないのですごく苦労しそうだ…
0 件のコメント:
コメントを投稿