DLLの配置場所を変更する(probing, codebase, developmentMode)

.Net アプリケーションは DLL(アセンブリ)をロードする場合、Exe と 同じフォルダ、もしくは、グローバルアセンブリキャッシュ(GAC)を検索します。しかし、probing , codebase, developmentMode といった手法を使用すると検索範囲を拡張したり変更する事…

Excelのセル参照文字を作成する。(Excel2007の16384列目まで対応)

C#

Excelのセル参照文字(A1やB2など)は列をアルファベットで表します。 数値で表すR1C1参照形式もありますが今日は1・2・3という列番号からA・B・Cという列参照文字を取り出してみます。アルファベットが26種類であるため26列目まではA-Z、27列目からはAA、AB、AC…

厳密名を持つアセンブリとは何なのか調べてみた

アセンブリを参照設定する際に「厳密名」というキーワードが出てきます。「厳密名」とは何か、参照設定での違いはあるのか、実行時にどのように動くのか調べてみました。 厳密名とは 厳密名とは、以下の4つの属性を使ってアセンブリを一意に識別する名称で…

現在実行しているDLLのパスを取得する。(GetExecutingAssembly )

C#

.Net Frameworkでは、アプリケーションの配置はXCopyによる配置が主流であるためExeとDLLの場所が異なる場合は、あまり多くありません。殆どの場合、Exeの場所を求めれば課題を解決することができるため、DLLのパスを取得する必要性は以前ほどなくなってきて…

Windows 2008 R2 SP1 Hyper-V Dynamic Memory を使用する

Windows 2008 R2 SP1 から仮想マシンのメモリ割り当てを必要量に応じて動的に変更する事ができるDynamic Memory機能が追加されたので実際に使用してみました。 Dynamic Memory は、ホストOSとゲストOSとの間でメモリ割り当て/メモリ解放を行う仕組みで、メモ…

Apple Wireless Keyboard を Windows で使う

Apple Wireless Keyboard (JIS) を 購入してみたのですが、やはりMac向けのキーボードなのでWindowsで使うと制限がありました。私が設定した内容と設定方法についてメモを残したいと思います。 最初は Apple Wireless Keyboard Helperを利用していたのですが…

仮想デスクトップサービス

Windows 2008 R2 のHyper-V機能を利用して個人向けにウインドウズ環境を提供するクラウドサービスがいくつか始まっています。そうしたニーズが高まってきているのも原因の1つですが、Windows 2008 R2 のライセンス形態が非常に魅力的な事がビジネスを後押し…

.Netアプリに設定するバージョン情報を整理する。(ファイルバージョン、製品バージョン、アセンブリバージョン)

■バージョン番号の各セクションの意味 アセンブリに設定するバージョン番号は、[3.1.5.1] というように4つセクションで構成されます。まず、MicroSoftは以下のルールでセクションごとに意味を持たせています。 メジャー番号 (主要な機能をアップデート/リリ…

Excel 2010 の CSV と 文字エンコーディング の関係

この記事は Hello Another World! さんのところで公開されている Excel 2003 の CSV と 文字エンコーディング の関係http://cs.albis.jp/blogs/ms-18e/archive/2006/08/07/Excel-2003-_6E30_-CSV-_6830_-_8765575BA830F330B330FC30C730A330F330B030_-_6E30A2…

製品版を使っているのにトライアル版のダイアログが表示される licenses.licx の正しい設定方法

GrapeCityなどのベンダーのコンポーネントを使用している場合に、正規ライセンスを購入しているのにトライアル版のダイアログが出てしまう事があります。製品版を使っているのにトライアル版のダイアログが表示されるhttp://www.grapecity.com/japan/support…

アプリケーションの実行パスを取得する。どの方法が適切か検討してみた。

アプリケーションの実行パスを取得する方法について調べると実にさまざまな方法が見つかります。どの方法でも実行ファイルのパスを取得できるようなのですが、では実際にどの方法を使えばいいのか。一番良い方法はどれなのかを検討してみました。まずは、Goo…

Webサーバで読み込んだファイルをダウンロードさせる

Webサーバ側で読み込んだファイルをダウンロードさせるにはResponse.WriteFile([FilePath]) を使用します。その際Response.Buffer を Trueに設定する事でクライアントへの応答をバッファリングしてくれます。(ダウンロードさせるファイルの種類にもよります…

WSSE認証に利用する認証用文字列を作成します。(HTTPのX-WSSEヘッダを使用した認証)

C#

WSSE認証は、HTTPのX-WSSEヘッダを使用した認証方式です。認証文字列は、ユーザー名とSHA1ハッシュされたパスワードで構成されるためパスワードが平文で流れる基本認証よりセキュアな認証が行えます。WSSE認証は、はてなでよく使われています。HTTPSの場合は…

乱数を作ります。(System.Random, RNGCryptoServiceProvider)

C#

コンピュータでランダムな値を作る場合は、サイコロを振るのとは違い計算によって求めます。そのため計算によって作ることから疑似乱数と呼ばれます。疑似という言葉が付くと乱数として不完全な物のように思えますが、コンピュータで作る乱数は、どの程度ラ…

System.ServiceModel.Syndicationクラスを利用してRSS2.0,ATOM形式でフィードを作成する。

C#

ブログなどの更新通知に利用されるRSS/AtomフィードをSystem.ServiceModel.Syndicationクラスを利用して作成します。今日から日記にRSSをつけたので、よかったら購読お願いします。RSSはブログタイトルの右隣からどうぞ。 さて、今回はtekkの日記の2010年度…

この種類のファイルであれば常に警告するダイアログを再表示する方法

Internet Explorerの場合 ・Windows XP [フォルダオプション]-[詳細設定]、「ダウンロード後に常に開くように設定する」のチェックを外す。(拡張子別に設定可能)・Windows Vista / 7 「HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\AttachmentExec…

.Net Framework がインストールされているかの確認。.Net Frameworkのバージョン番号の確認

■.Net Frameworkがインストールされているかどうかの確認。 .Net Framework がインストールされているかどうかは%SystemRoot%\System32 ディレクトリ(SystemRoot環境変数のSystem32サブディレクトリ)に、MSCorEE.dllが存在するかどうかで確認することが出…

異なるクラスでもコピーするXMLSerializerを使用した汎用のディープコピー処理(ICloneable, MemberWiseClone, Serializable, XmlSerializer, MemoryStream)

前回、どんなオブジェクトでもコピーできる処理を作ってみました。今回は、クラスが異なる場合でもプロパティの名前さえ一致すればディープコピーできる処理について整理してみました。どんなオブジェクトでもコピーできる汎用のディープコピー処理(IClonea…

VPSの制限を越えた場合のトラブルシューティング

webarenaのVPSサーバが停止してしまったので、その際のトラブルシューティングのメモ。 現象 ・すべてのウェブサイトが 403 Forbidden を返す。 ・SSHDが接続できない。 ・工事障害情報に特に自サーバに対するメンテナンスは無い。(http://web.arena.ne.jp/…

文字幅を取得するAPI

文字幅を取得するWindows32 API のメモ ・GetCharWidthFloat ・GetCharABCWidthFloat ・GetCharWidth(文字セル幅にOverHangが足された値になる) ・GetCharABCWidths(TrueType以外に使用不可) ・GetCharacterPlacement ・GetCharWidth32 文字本体の幅をB幅、…

アセンブリ・DLLの差し替え(アセンブリリダイレクト)

参照設定しているアセンブリ(DLL,Exe)がバージョンアップした場合にファイルを差し替えますが、バージョンが異なる場合、ファイルを差し替えてもバージョン違いとなりエラーが発生して起動する事ができません。対応方法としては、新しいバージョンに参照設…

ターミナルサーバへのアプリケーションのインストール

ターミナルサーバへアプリをインストールする場合は、インストールモードを切り替えます。この操作を行わないと各ユーザにアプリを展開できない場合があります。 ■コマンドによる切替 change user /install インストールモードに切り替え change user /execu…

Hyper-V の自動バックアップ(エクスポート) スクリプト

次の機能を実装しています。Hyper-vのエクスポート(export)機能を利用した簡易Backupツールです。 指定した任意のバーチャルマシンをエクスポートできます。(複数指定可能) 実行中のバーチャルマシンは状態を保存に遷移させてからエクスポートします。エク…

vbScriptでinclude文を使う

VBスクリプトで複数のファイルにわたって記載するためのテクニックです。基本的にVBスクリプトは1ファイルでしか作成できませんが、ExecuteGlobalを使用すると引数で渡した文字列をプログラムとして認識してくれます。 このテクニックをを利用してInclude文…

VisualStudio 2008 のコンパイルを高速化する

[オプション]-[プロジェクトおよびソリューション]-[ビルド/実行] 並行にビルドするプロジェクトの最大数。(CPUやコアの数に合わせて数字を調整する。複数のプロジェクトを並行でビルドすることが出来ます。)MSBuildで利用する場合は、/maxcpucount:3 (3…

どんなオブジェクトでもコピーできる汎用のディープコピー処理(ICloneable, MemberWiseClone, Serializable, BinaryFormatter, MemoryStream)

シリアライズを利用した汎用のオブジェクトのディープコピー処理について整理しました。BinaryFormatterを使用してMemoryStreamに対してシリアライズ/デシリアライズを行いオブジェクトのメモリイメージのコピーを作成するテクニックです。理論上、Serializ…

メールマガジンを創刊しました!「きちんと学ぶ .Net Framework[C#] 」

.Net Frameworkに関する基本事項を取り扱うメールマガジンを発行することにしました。以下、内容の引用ですが興味のある方は、是非、登録ください。 きちんと学ぶ .Net Framework[C#]は、マイクロソフトの開発基盤である .Net Framewo rkの基本事項を体系的…

大文字小文字を無視するキーコレクション。(HashTable,SortedList,Dictionary,SortedList)

C#

キーと値を持つコレクション。非ジェネリックでは、HashTable,SortedList、ジェネリックではDictionary,SortedListと4種類のコレクションがありますが大文字・小文字を無視する際の記述方法が異なります。非ジェネリックは、使う場面も少なくなって来ていま…

ジョナサン・ジットレイン 「親切に支えられたWeb」

TEDでユーモアと希望にあふれたインターネットに関する講演があったので紹介したいと思います。 ジョナサン・ジットレイン 「親切に支えられたWeb」 http://www.ted.com/talks/lang/jpn/jonathan_zittrain_the_web_is_a_random_act_of_kindness.html インタ…

実行時に読み込んだアセンブリをアンロードする。

実行時の任意のアセンブリを動的に読み込むことは出来ますが、アンロードする場合はアプリケーションドメインごとアンロードする必要があります。Win32Apiでは、LoadLibraryとFreeLibraryによって該当DLLだけをロード・アンロードできましたが.Net ではアプ…