VisualStudioで画像の変更差分を見る

(VisualStudio history image Merge)
クライアントで使用するリソースをソース管理に入れて変更した場合に、ソースファイルと違って差分が見れないので不便!!
f:id:orzmakoto:20151021232917p:plain

ですが、リソース(PNG、JPGとか)の差分確認に使用するツールWinMergeを指定すると見れるようになります。

続きを読む

TFS2013から2015へのアップデート

(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 のシステム要件

1.Team Foundation Server 2015のインストール

インストールメディアをTFS2013をインストールしたサーバーに入れてウィザードに従って進行
f:id:orzmakoto:20151016220027j:plain

続きを読む

Team Foundation Server 2013のセットアップ

(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を使ってファイルの配置

(Web Deploy 3.0 Microsoft.Web.Deployment C# -preSync -postSync)
Microsoft Web Deploy3.0を使ってリモートサーバに簡単に配置することが可能です。
基本的には、VisulaStudioから実行するかmsdeploy.exeをコマンドラインから実行するかになります。
が様々な理由でC#上から実行したい時がありました。
(条件に合わせてパラメーターを変更したいとか)

tech.tanaka733.net
こちらの記事を参考にして試していましたが決定的な違いが

・記事ではIISに対してアプリを発行しているが、やりたいのはファイルの配置をやりたい
・preSyncとpostSyncを使って前後でコマンドを実行したい

C#実行したい内容

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)を実行
としていること

RunCommandの実行

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)からプロジェクトを復元できるので調べ事などには便利です。