(VisualStudio history image Merge)
クライアントで使用するリソースをソース管理に入れて変更した場合に、ソースファイルと違って差分が見れないので不便!!
ですが、リソース(PNG、JPGとか)の差分確認に使用するツールをWinMergeを指定すると見れるようになります。
続きを読む(tfs 2013 to 2015 update)
9月末にTFS2013をインストールしてから早1カ月ちょい
まったく触れていませんでしたが!
やっと2015に更新しました
まずは、2013から2015へのアップデートの備考録をっと
前提として2013をインストールしていますorzmakoto.hatenablog.com
TFS2015のシステム要件 抜粋
WindowsServer:2008 R2 SP2以降 or 2012 or 2012 R2
SQLServer:2012 SP1以降 or 2014
詳細↓↓↓
Team Foundation Server のシステム要件
インストールメディアをTFS2013をインストールしたサーバーに入れてウィザードに従って進行
(Team Foundation Server TFS 2013 setup )
夏の激務で、何もして遊べない中、TFS2015がリリースされました。
Team Foundation Server 2015 RC 2 | リリース ノート
30以上の機能追加強化されており非常に魅力的です。
Git関連
SharePoint 拡張機能
Project Server 機能拡張
迅速なコード編集
REST API
などなど
いざ、検証用のTFS2013をアップデートしよと思い、VMを探すがない。
どーこにもない。
多分、なんかで消しちゃったな
アップデート検証用にTFS2013をまるっと新規で建てたので手順メモです。
基本的には、ウィザードに従っていけば完了します。
役割 | 名前 | OSとか |
ドメインサーバー | ** | |
---|---|---|
DBサーバー | NinoDb | WindowsServer2012R2Standard SQLServer2014 |
Webサーバー | NinoTfs | WindowsServer2012R2Standard |
の3台で構築
単一のサーバーで構築する場合には、ドメコンは不要ですが今回はDBとWebを分けるので必要になります
後々、SharePointとかとも連携したい場合などにはドメイン環境必須
(Web Deploy 3.0 Microsoft.Web.Deployment C# -preSync -postSync)
Microsoft Web Deploy3.0を使ってリモートサーバに簡単に配置することが可能です。
基本的には、VisulaStudioから実行するかmsdeploy.exeをコマンドラインから実行するかになります。
が様々な理由でC#上から実行したい時がありました。
(条件に合わせてパラメーターを変更したいとか)
tech.tanaka733.net
こちらの記事を参考にして試していましたが決定的な違いが
・記事ではIISに対してアプリを発行しているが、やりたいのはファイルの配置をやりたい
・preSyncとpostSyncを使って前後でコマンドを実行したい
msdeploy.exe -verb:sync -source:dirPath="配置元ディレクトリ" -dest:computerName="http://配置先コンピュータ/MSDeployAgentService",userName="ドメイン名\ユーザー名",password="パスワード",includeAcls="False",dirPath=配布先ディレクトリ -enableRule:DoNotDeleteRule -preSync:runcommand="C:\Tools\配置前実行.bat" -postSync:runcommand="C:\Tools\配置後実行.bat"
こんな感じですぐに分かりました。
var sourceBaseOptions = new DeploymentBaseOptions(); var destBaseOptions = new DeploymentBaseOptions() { ComputerName = "http://配置先コンピュータ/MSDeployAgentService", UserName = @"ドメイン名\ユーザー名", Password = "パスワード", IncludeAcls = false, }; sourceBaseOptions.Trace += trace; destBaseOptions.Trace += trace; var deploymentObject = DeploymentManager.CreateObject( DeploymentWellKnownProvider.DirPath, @"配置元ディレクトリ", sourceBaseOptions); var syncOptions = new DeploymentSyncOptions(); //-enableRule:DoNotDeleteRule syncOptions.DoNotDelete = true; //-verb:sync を実行 var changes = deploymentObject.SyncTo(DeploymentWellKnownProvider.DirPath, @"配布先ディレクトリ", destBaseOptions, syncOptions);
実行にはC:\Program Files\IIS\Microsoft Web Deploy V3\Microsoft.Web.Deployment.dllの参照追加が必要です。
が-preSyncと-postSyncの実行方法がまったくわからず。
調べ方もよくわからず。
そこで必殺
逆アセンブリ
わからない時は大抵これでなんとかなります
C:\Program Files\IIS\Microsoft Web Deploy V3
Microsoft.Web.Deployment.dll
msdeploy.exe
この2つを覗いてわかったこと。
-preSyncと-postSyncは、配置を実行する前後に、RunCommandを実行している
msdeploy.exeは引数を受け取って
1. RunCommand(preSync)を実行
2. Sync(DirPath)を実行
3. RunCommand(postSync)を実行
としていること
var destBaseOptions = new DeploymentBaseOptions() { ComputerName = "http://配置先コンピュータ/MSDeployAgentService", UserName = @"ドメイン名\ユーザー名", Password = "パスワード", IncludeAcls = false, }; var syncOptions = new DeploymentSyncOptions(); var verboseLevel = new DeploymentBaseOptions(); verboseLevel.Trace += trace; destBaseOptions.Trace += trace; using (DeploymentObject deploymentObject = DeploymentManager.CreateObject(DeploymentWellKnownProvider.RunCommand, @"実行コマンド", verboseLevel)) { deploymentObject.SyncTo(destBaseOptions, syncOptions); }
こでハマったのが実行したいコマンドをどこで指定すればいいかわからない。結果としてDeploymentManager.CreateObjectの第二引数に実行したいコマンドを書けばよかったですが、これも時間かかりました。
なんだかなー
今回、
逆あせんプリには、
Telerik JustDecompiler free .NET decompiler
を使用しました。
完全に復元はできませんが、アセンブリ(dll,exe)からプロジェクトを復元できるので調べ事などには便利です。