2010年 8月

Microsoft.VC90.CRT side-by-side アセンブリ

まったく!

マイクロソフトも次から次へとややこしくなっていく。

「side-by-side」などと一見かっこいい名前だが、VCのランタイムライブラリを使うのにいちいち、Microsoft.VC90.CRT.manifestというXMLで書かれたテキストファイルが必要ということ。

アプリケーションには、どのバージョンのVCのランタイムライブラリを使うかが埋め込まれており、それを実行するマシンに存在しない場合は、落っこちてしまう。

イベントログを見ると落ちた原因がわかるのだが、Microsoft.VC90.CRTが見つからないという結果になる。

そこで、「なんのこっちゃ?」となってしまう。

こういった場合、VCのランタイムをマイクロソフトのサイトよりダウンロードして、インストールすれば一件落着なのだが、USB等からスタンドアローンで動かすアプリの場合にはそうはいかなくなるのだ。

そういった場合は、落っこちたアプリケーションや使用しているDLLがどのVCのランタイムライブラリを要求するかを調べる。

やや強引な話だが、そのアプリケーションやDLLをテキストエディターで見ると、それらしいものが見つかる。

そこで、アプリケーションのexeが入っているフォルダーにMicrosoft.VC90.CRTというディレクトリを作成して、その中にMicrosoft.VC90.CRT.manifest とそのバージョンのmsvcm90.dll msvcp90.dll msvcr90.dllを入れてやれば正常に動くようになるのだ。

Microsoft.VC90.CRT.manifestは、動いているマシンのC:\windows\winsxs\Manifests の下にいーっぱい入っているのでその中から探します。
x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_5090ab56bcba71c2.manifest 等と長いファイル名になっているのをもってきて、microsoft.vc90.crt.manifest という名前に変更してやればよい。

side-by-side アセンブリは、VCのランタイムにかぎったことではないので、こういったことが起こった場合はこれを参考に考えればよいのである。

今回は、bindingRedirectについては、あまり調べていないのですが、これをminifestファイルに書く方法を調べた人がいれば、コメントしてください。

参考URL

http://msdn.microsoft.com/ja-jp/library/ms997620.aspx

http://msdn.microsoft.com/ja-jp/library/8477k21c(VS.80).aspx

VMWARE Server のインストールで「システム管理者によって、ポリシーはこのインストールを実行できないように設定されています」

ドメインに参加しているWindowsXP ProfessionalにVMWARE Server2.0をインストールしようとしたところ下記メッセージを出力して止まってしまう。

どないしたらえんじゃろ!?!?

のたうちまわった結果

コントロールパネル->管理ツール->ローカルセキュリティポリシー でローカルセキュリティポリシーを起動する。

ソフトウェアー制限ポリシーで、信頼された発行者のプロパティーで

ローカルコンピュータの管理者 にする。

CentOS XServer を設定してCygwinでアクセス

CentOSの画面をリモートでアクセス

 

/etc/gdm/custom.conf を編集
[security]
AllowRemoteRoot=true

 

[xdmcp]
Enable=true

 

これだけ

 

再起動したあとは、WindowsにCygwin を入れてアクセスするだけ

 

Cygwinはここからインストール http://www.cygwin.com/

 

コンソールを出して X -query 192.168.1.1 をたたくだけ

 

おっと忘れてた

 

ファイアウォールの設定も忘れないようにしなくては・・・

 

クライアント ----Tcp 6000ーーーー>サーバ

クライアント <----Tcp 6000ーーーーサーバ

 

双方向でつながらないとだめなんです