漫画とアニメとロック音楽が好きな
      情緒不安定が綴る手記
RECOMMEND
RECOMMEND
RECOMMEND
PR
Profile
Search this site.
twi
MOBILE
qrcode
Others
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | - | このページのトップへ
exeやdllをマージして一個にするんぞなもし
プログラムを作ってビルドしてreleaseフォルダを見ると、
なんかいっぱいファイル出来てる・・・(´_ゝ`)ゼツボウ
という事がありますね。

この程度のシステムならexe一個で良いと思ってたのにーっていう時、
ILMergeっていうのを使えば良かったみたいです。

Microsoft ILMerge Download
http://www.microsoft.com/en-us/download/details.aspx?id=17630

ダウンロードしてインストールしたら、
ビルド終了後にILMergeを起動してファイルをマージするようにします。
プロジェクトのプロパティから、
ビルドイベントに「ビルド後に実行するコマンドライン」があるのでそこにコードを書きます。
"C:¥Program Files¥Microsoft¥ILMerge¥ILMerge" /out:プログラム名 纏めたいexe1.exe 纏めたいexe2.exe 纏めたいdll1.dll
こんな感じだったかな。やり方間違ってたらめんごね_(:3」∠)_
これで正常にビルドが終了すれば、
releaseフォルダ内にマージされたものが、/out:の後に書いたプログラム名でexeが作成されます。

一個のexeだけで済んだりするので中々便利ですね。

余談
今日は久しぶりに雨でしたね。
出勤時に思い切りコケて腰を強打したのでめっちゃ痛いです。おのれ床(;´皿`)ギリィ...
頭は打たない様に咄嗟に首を上げたのも腰をピンポイントで強打した原因なんですがね。

ともかく外傷性の腰痛には炎症を伴った痛みが生じるそうなので、
この場合は温めるより冷やす方が効果あるんだそうだね。
| C# | 23:15 | comments(0) | trackbacks(0) | このページのトップへ
【C#】XMLを読み取れ地獄【もしくはDOM】
割とXML読み取って色々する事が多いです。
c#だとこうですね。
 
string Mago="";
XElement xelement = XElement.Load("xmlファイル");
//孫要素を参照できるようにする
var element = xelement.Elements("親").Elements("子").Elements();
foreach(var x in element)
{
if(x.Name.Tostring()=="孫要素名")
{
//孫要素の内容を取得
Mago=(string)x;
}
}

parentとかで一致させてよく値取ったりしてますね。
で、なんと今日は「DOMで頼む」と言われました。
よっしゃ!だからVBS触った事無いとあれほど・・だけどコピペしよう!
 
Dim objDOM, rtResult
Set objDOM = WScript.CreateObject("MSXML2.DOMDocument")
rtResult = objDOM.load("Sample.xml")
If rtResult Then
procDispDatas objDOM.load(xmlファイル)
End If
Set objDOM = Nothing
Sub procDispDatas(objNode)
Dim obj
For Each obj In objNode
If obj.nodeType = 要素の階層 and obj.parentNode.nodeName = "要素名" Then
MsgBox obj.parentNode.nodeName & " : " & obj.nodeValue
End If
If obj.hasChildNodes Then
procDispDatas obj.childNodes
End If
Next
End Sub

だそう。
まあXML呼んでForeachで回す所は変わらないみたいですね。
なーる(´_ゝ`)
| C# | 17:57 | comments(0) | trackbacks(0) | このページのトップへ
C#でwsfファイルを動作して返り値を取ってこい
最近なにかと開発をやってますが、
見た目の通りのへっぽこな上直ぐ忘れるので色々備忘録でつけときます。

本日は
上長「VBScriptで作ったから、この返り値C#で取ってね!」
俺 「あい!(´∀`)∩」
VBSとかやった事無いけど、まあ引数と一緒にファイル叩くだけだろう
と思ったらあらやだ
exeとかbatなのかと思ってたらwsfファイル渡された話です。
wsfとか使った事無いや・・・。

取りあえずProcessでなんとかしようと軽く設定おば。
Process p = new Process();
p.StrartInfo.FileName = cscript;

//出力を読み取る様にする
p.StrartInfo.UserShellExecute = false;
p.StrartInfo.RedirectStandardOutput = true;p.StrartInfo.RedirectStandardInput = false;

//ウィンドウ表示なし
p.StrartInfo.CreateNoWindo w =true;

こんな感じ。
因みに、2行目のFileName指定でwsfファイルのフルパスを書き、
「exeと同じじゃあかんのか・・・(´・ω・`)」と頭を抱えました。
良く解んないなりに"cscript"突っ込んだら動いたのでこれで良かったみたい。

じゃあwsfのパス何処に書くんだよと思ったら案の定あそこでした。
 

//コマンドライン引数
p.StrartInfo.Arguments=wsfファイルパス 引数;

//開始
p.Start();
string result=p.Standard.ReadToEnd();

//終了
p.Close();
p.WaitForExit();

Argumentsで空白を開けると複数の引数が渡せるみたいです。
wsfパスはは引数だったんやね・・。
「wsfファイルのパス(空白)引数」を渡して、
ProcessスタートでEchoがresultに入りました。

正直これでいいのかと、ちゃんとTechNetとかMSDNとか
読めよと思うんですけど。(´_ゝ`)
まあ動くし予定通りの値返ってるからいいか!←おい

 
| C# | 23:43 | comments(0) | trackbacks(0) | このページのトップへ