ClosedXMLでエラー”The header row contains more than one field name '0'.”

(ClosedXML The header row contains more than one field name)
サーバ側でExcelファイルを操作必要があり、MSExcelを使うまでもないことなので、ClosedXMLを使用してXLSXファイルを読み書きしてたら突如なぞの例外発生
特定のファイルを開くときにエラーになっているもよう

f:id:orzmakoto:20151201154817p:plain

続きを読む

MSBuildでTypeScriptをコンパイル

(TypeScript MSBuils Compile ASP.NET MVC)
TypeScriptいいですよね。TypeScript!

VisulaStudioを使用して、TypeScriptを書いていると随時コンパイルしてくれます。
特に何もしなくても、VisulaStudioから公開(2013までで言う発行)するとコンパイルしたJSファイルをコピーしてくれます。

ですが、MSBuildASP.NETのプロジェクトをビルドして発行した場合には、TypeScriptはコンパイルされずにJSファイルが作られないので、発行物を含まれません。
※恥ずかしながら後輩に指摘されるまで気づかなかった事実

ということで、MSBuildの構成ファイルの改造を開始したですが、なっかなかこれってのが出来なくてとりあえず下記の構成で行けそう。

ビルド構成ファイル

<Project ToolsVersion="4.0" DefaultTargets="Run" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
	<Target Name="Run">
		<CallTarget Targets="BuildTypeScript"/>
		<CallTarget Targets="Publish"/>
	</Target>

	<PropertyGroup>
		<ProjectDir>$(ProjectPath)</ProjectDir>
		<TypeScriptVersion>1.4</TypeScriptVersion>
	</PropertyGroup>

	<ItemGroup> 
		<TypeScriptCompile Include="$(ProjectDir)\**\*.ts" />
	</ItemGroup> 

	<Target Name="BuildTypeScript" Inputs="@(TypeScriptCompile)" Outputs="%(Identity).Dummy">
		<Message Text="@(TypeScriptCompile)" />  
		<Exec Command="&quot;$(MSBuildProgramFiles32)\Microsoft SDKs\TypeScript\$(TypeScriptVersion)\tsc&quot; -target ES5 &quot;@(TypeScriptCompile)&quot;" />
	</Target>

	<Target Name="Publish">
		<RemoveDir Directories="$(OutputPath)\"
				   ContinueOnError="true" />

		<MSBuild Projects="$(ProjectPath)\$(ProjectName)"
				 Targets="Compile;ResolveReferences;_CopyWebApplication;"
				 Properties="Configuration=Release;
	                         WebProjectOutputDir=$(OutputPath)\;
	                         OutDir=$(OutputPath)\bin/;SolutionDir=$(SolutionDir);" />
	</Target>
</Project>
<TypeScriptVersion>1.4</TypeScriptVersion> TypeScriptコンパイラのバージョンを指定する必要があります。これは固定値じゃなくて引数で受け取ったほうがよいかも
<Exec Command=""$(MS~~~ ダブルクォーテーションをエスケープして&quotと記述しています。必須です。

バッチファイル

SET msbuild="C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe"
SET ProjectPath=C:\TS\Project
SET ProjectName=SampleASPNET.csproj
SET OutputPath=C:\TS\Project\Output

%msbuild% Client.App.msbuild /p:ProjectPath=%ProjectPath%;ProjectName=%ProjectName%;OutputPath=%OutputPath%

久々にMsbuildの構成ファイルをいじりました。
前々から使っている構成ファイルが秘伝のタレ状態でもちょっといろいろやりたいなーって思う反面詰め込み過ぎるとカオスるんだろうなー

MSBuild

dynabook R63のメモリを16GBに増設してみた

(dynabook R63 memory 16gb)
メインで使ってるノートPCのdynabook R63(2014年夏モデル)はメモリ8GBで最近頻繁に、メモリ不足の警告が出ていて、この手のノートPCはメモリ増設できないしと諦め状態だったがなんとメモリスロットが1つ空いていて増設可能なことが判明

dynabook R63の主なスペック

CPU ンテル® Core™ i7-4510U 2.00GHz
メモリ 8GB
SSD 256GB
重量 約1.2kg
バッテリ駆動時間 約12時間

f:id:orzmakoto:20151029233138p:plain
メーカサイトにはばっちり増設不可って書かれてるのを信用していまったぜ

いざ分解

まずは裏のネジを外します
f:id:orzmakoto:20151029233214j:plain

続きを読む

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

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

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

続きを読む