- - PR -
インストーラーでのバッチ起動
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-20 16:03
はじめまして。
よろしくお願いします。 【開発環境】 Visual Studio .net 2003 .NetFramework 2.0 windows XP SP2 上記の環境でセットアッププロジェクトを利用して 別のプロジェクトで作ったEXEのインストーラーを作っています。 EXEの起動時間が初回とそれ以降で差があるため、 ngen.exeを使用して高速化を図ろうと思っています。 【疑問点】 1・EXEをインストール後に自動でngen.exeを実行したいのですが、 インストーラーの設定で可能なのかどうかわかりません。 2・現在はngen.exeを実行するバッチをEXEと同じフォルダにインストールし 手動で実行しています。 1の方法が不可の場合はこのバッチを起動することで対処したいのですが、 インストーラーでバッチを起動する方法がわかりません。 わかりづらいかもしれませんが、 上で「インストール後」と言っているのは 「インストール完了画面」を出す前で、 目的のEXEがインストールされた後にngen.exeを実行したいです。 以上に関して、設定方法、参考ページ等ご教授願いたいと思います。 よろしくお願いします。 | ||||||||
|
投稿日時: 2007-07-21 08:18
以下のリンク先ががご参考になりませんか。
#私自身はngenは使ったことも使う予定もないですが…それほど効果があるのですか? 参考リンク: MSDN Library Japan チュートリアル : カスタム動作を使用して、インストール中にアセンブリをプリコンパイルする http://msdn.microsoft.com/library/ja/vsintro7/html/vxwlkWalkthroughUsingCustomActionToPrecompileAssermblyDuringInstallation.asp チュートリアル : カスタム動作を使用した、インストール時のアセンブリのプリコンパイル http://msdn2.microsoft.com/ja-jp/library/3hwzzhyd(VS.80).aspx Insider.NET 会議室(ここ) 過去スレッド 件名:[C#] 状況に応じてコンパイルのタイミングを細かく制御したい http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=14465&forum=7 MSDN フォーラム » フィードバック » Visual Studio フィードバック » Ngenで作ったファイルを配布できるように。 http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=747695&SiteID=7 | ||||||||
|
投稿日時: 2007-07-21 13:08
不可能ではありません。 Windows Installer/.msi についてきちんと勉強して、.msi に ngen.exe を起動する「カスタム アクション」を追加すればよいです。 この際、実行するべき ngen.exe のパスの取得がちょっと面倒かもしれません。
.exe を起動するのも .bat/.cmd を起動するのも、手順は同じです。 どちらか一方が実現できれば、もう片方も同じ手法で実現可能です。 | ||||||||
|
投稿日時: 2007-07-21 13:11
まったく効果が無いこともないと思いますが、あまり実感できないケースが多いように思います。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2007-07-23 14:32
IIJIMAS 様、渋木宏明(ひどり) 様
回答ありがとうございます。 ご提示いただいた 引用: -------------------------------------------------------------------------------- チュートリアル : カスタム動作を使用した、インストール時のアセンブリのプリコンパイル http://msdn2.microsoft.com/ja-jp/library/3hwzzhyd(VS.80).aspx -------------------------------------------------------------------------------- を作って試しました。 その結果、インストール自体もうまくいき、 ngen.exeも起動でき、正常終了を確認しました。 C:\\Windows\\assembly にはなぜかInstallClass は見つけられませんでしたが、 ngen.exe display にて確認できました。 ありがとうございました。 引用: -------------------------------------------------------------------------------- #私自身はngenは使ったことも使う予定もないですが…それほど効果があるのですか? -------------------------------------------------------------------------------- ngenを使ったことで平均20秒=>17秒、と3秒程度短くなりました。 まだ改善点はあるとは思いますが。 | ||||||||
|
投稿日時: 2007-07-24 07:38
これは初回起動でしょうか? 初回起動にしても 17 秒はちょっと長すぎだと思います。 通常の .NET のアセンブリは初回起動はそれなりに重いですが、2 回目以降はストレスなく動作するのが普通だと思います。 もちろんスペックや環境に大きく依存します。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-07-25 10:27
じゃんぬねっと 様
引用: -------------------------------------------------------------------------------- これは初回起動でしょうか? 初回起動にしても 17 秒はちょっと長すぎだと思います。 通常の .NET のアセンブリは初回起動はそれなりに重いですが、2 回目以降はストレスなく動作するのが普通だと思います。 もちろんスペックや環境に大きく依存します。 -------------------------------------------------------------------------------- 初回起動の計測値です。 おっしゃる通り2回目以降は遅くても5秒もあれば起動します。 【テスト環境】 OSがWIN2000、メモリが512MB SQLサーバーが動いています。 フォームを表示する前にSQLサーバーのデータをチェックしているので、 現在はデータのチェックを行う前に スプラッシュウィンドウを表示することで見た目上は対処しました。 |
1