2013年10月28日月曜日

VC++ネイティブが.NET Frameworkに依存してしまう。

VC++でネイティブコードでプログラムを作成しました。
.NET Frameworkなんて利用した覚えは全くありませんでした。
ただ単純にVisual Studio2010のウィザードで、VC++ MFC ダイアログベースアプリケーションを作ったのです。

ソフトも完成したので、インストーラ(msi)を作ったのですが、なぜだか?、.NET Frameworkがパッケージされてしまいます。

.NET FrameworkがインストールされていないPCでさくさく動くプログラムなのに、インストールパッケージ(msi)を作成すると、.NET Frameworkがインストールされてしまいます。

色々調べていると、VS2010のウィザードが stdafx.h を生成する時にリボンコントロールのヘッダファイルを追加するのですが、そのヘッダが.NET Frameworkを呼び出しているようです。

#include     // MFC におけるリボンとコントロール バーのサポート

ダイアログベースなので、リボンなど不要で、しかも利用していないのに、ヘッダをインクルードしただけで依存関係が出来てしまう。

困ったモノです。
利用していないのだから、いくらヘッダをインクルードしたとしても、依存しないで欲しい。

とにかく、afxcontrolbars.hインクルードをコメントアウトすると、.NET Framework 無しのすっきりしたインストーラができあがりました。

めでたしめでたし。

でも、これを探すのに1日つぶしてしまったよ。
こんなの多すぎ。(-_-;



このサイトは、広告収入により運営しております。

0 件のコメント:

コメントを投稿