- PR -

他のPCでも使えるリリースビルドの仕方

投稿者投稿内容
hito
会議室デビュー日: 2007/02/22
投稿数: 5
投稿日時: 2007-02-22 12:18
引用:

こちらの方<http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1255615&SiteID=7>でも質問していますが、manifestについて作成方法まではわかりましたが、ビルド時に生成されるものでよろしいのでしょうか?
また、それを実行ファイルと同じ場所におけばよろしいのでしょうか?



manifestを必ず配らなくてはいけません。配置場所は実行ファイルと同じ場所です。
ただ、テストレベルであれば問題ないでしょうけれど、最終的な成果物にするには
セットアッププロジェクトを作り、インストーラで配布するようにしないと
トラブルのもとになるでしょう。

また、コピペによる混在は、まぁこういう問題が発生する、ということを把握して
いれば、致命的な問題にはならないですかね。

ただし、もしも契約上、CLR使うなとか、ネイティブアプリケーションにしろ、といった
制約がある場合はNGですので、きちんと確認しておいた方がよいです。
とりあえず自分が発注元なら、「ネイティブアプリケーションですがCLRが必須です♪」
と言われた瞬間に、「技術的な必要要件を満たす能力がないので、発注してはいけない」
と添え書きしてブラックリストに入れます。
osako
常連さん
会議室デビュー日: 2006/10/31
投稿数: 35
投稿日時: 2007-02-22 13:00
hitoさん
返答ありがとうございます。
私はビジネスで作成していませんので、だいじょうぶです。
そんなレベルじゃないですし。。。

manifestはビルド時に作成されたものはこのようになっています。

<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>

これでよろしいのでしょうか?

また、セットアッププロジェクトは自分の環境がVC++Expressなために作成できません。
マニフェストというものは、追加のマニフェストの等で組み込まれてビルドできないものなのでしょうか?

とりあえず、マニフェストを作成して、試してみます。
どちらにしろ、Microsoft Visual C++ 2005 再頒布可能パッケージ (x86)とMicrosoft .NET Framework Version 2.0 再頒布可能パッケージ (x86)のインストールは必須ですよね?
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-02-22 13:23
あっちで答えてるんで、あっちも見てもらうとして...
manifest な内容はこっちで展開されてるんで、答えに来ましたww

manifest は VC2005 の場合、自動的に埋め込まれます(設定を変えてなければですが)。
なので、それについては気にしなくていいです。

逆につけないとかを気にするなら意味ありますけどね。

とりあえず、いかをきちんと確認したうえで、両方にフィードバックしてください。
VC++2005 Express にSP1は適用されているか?
わからない場合は、\\Program Files\\Common Files\\Merge Modules にある、Microsoft_VC80<なんとか>.msm のタイムスタンプを教えてください。

テスト環境のOSと開発環境のOS。
テスト環境では、どのようにして、EXE を実行したのか?
そのEXEがある場所はどこか?

多分、それがわかればここの多くの方がどうしろと一言書いてくれると思いますよ。
#おいらはこの後会議が入ってるんで、レスポンス悪くなりますのでw

で、インストーラですが、WiX でよければ、Express で使う方法を私がCodezineで連載してるんで、探してみてくださいなw
#一応こことは競合するところなんであえてリンクは張りませんwww
osako
常連さん
会議室デビュー日: 2006/10/31
投稿数: 35
投稿日時: 2007-02-22 17:09
とっちゃんさん
ご返答ありがとうございます。

こちらに回答しました。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1256397&SiteID=7&mode=1

また、向こうのスレにて蒼の洞窟さんへ答えていますが、
Microsoft Visual C++ 2005 再頒布可能パッケージと
Microsoft .NET Framework Version 2.0 再頒布可能パッケージ をインストールして
manifestとmsvcr80.dllを実行ファイルへおきましたがだめでした。

今からプログラムを変更はしたくないので、
Wixのインストーラの件を検討したいと思います。

osako
常連さん
会議室デビュー日: 2006/10/31
投稿数: 35
投稿日時: 2007-02-23 10:32
Microsoft Visual C++ 2005 再頒布可能パッケージと
Microsoft .NET Framework Version 2.0 再頒布可能パッケージ をインストールしてみたりと、試してみたのですが、問題は解決しませんでした。
やはり、hitoさんや、とっちゃんさんが触れていました、インストーラにての
配布を考えて見ます。
今後は、下記のMSDNフォーラムのスレに統一します。
こちらで、お世話になった方々、ありがとうございました。
また、今後もよろしくお願いします。

http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1256397&SiteID=7&mode=1
Blue
大ベテラン
会議室デビュー日: 2005/09/12
投稿数: 230
お住まい・勤務地: 知っている人は知っている
投稿日時: 2007-02-23 10:40
結局、SP1の開発環境で作成されたexeのため、
SP1に対応していない
Microsoft Visual C++ 2005 再頒布可能パッケージ
を使っているので、実行できなかったということなんでしょうか?


ということで、質問時にはどの環境(今回はSPがかなり重要な情報だったわけ)で
どんなことをしてきたかを明確にしていれば、早々に解決できたんでしょうね。



ところで、SPの確認方法は
引用:
VC++2005 Express にSP1は適用されているか?
わからない場合は、\\Program Files\\Common Files\\Merge Modules にある、Microsoft_VC80<なんとか>.msm のタイムスタンプを教えてください。


というような確認方法しかないのですかね?

[ メッセージ編集済み 編集者: Blue 編集日時 2007-02-23 10:41 ]
とっちゃん
大ベテラン
会議室デビュー日: 2005/07/19
投稿数: 203
投稿日時: 2007-02-23 12:22
引用:

Blueさんの書き込み (2007-02-23 10:40) より:

ところで、SPの確認方法は
引用:
VC++2005 Express にSP1は適用されているか?
わからない場合は、\\Program Files\\Common Files\\Merge Modules にある、Microsoft_VC80<なんとか>.msm のタイムスタンプを教えてください。


というような確認方法しかないのですかね?


Express でも同様かはわかりませんが、Standard 以上なら、アバウトダイアログにSPの有無は表示されます。

でも、自分で確認してないから、Express で出てくるかはわかりません。
なので、絶対確実(使いたいものだしw)な確認方法を提示しただけです。

ほかにも、プログラムの追加と削除で確認することもできます(XP/Vistaは更新を表示していないと出ませんがw)。

引用:

ということで、質問時にはどの環境(今回はSPがかなり重要な情報だったわけ)で
どんなことをしてきたかを明確にしていれば、早々に解決できたんでしょうね。


これはどんな質問でも一番重要だったりしますよねw
開発環境によっても答えが変わる場合があるし(今回はSPの適用状態が影響)、実行環境と開発環境との相違なんかもありますしね。
この先、Vista の普及が進んでいけば、さらにその差異の大きさあ顕著になるでしょうしww
#実際、2000->XPのときも結構いろいろありましたからw

最近はほとんどなくなったとはいえ、いまだに9x系の話題が出ることだってあるしねw

_________________
// とっちゃん(高萩 俊行)@わんくま同盟
// とっちゃん’Blog
// MS-MVP for Developer Tools - Visual C++
// WindowsInstallerの話題はhttp://www.freeml.com/msiまで
osako
常連さん
会議室デビュー日: 2006/10/31
投稿数: 35
投稿日時: 2007-02-23 20:15
とっちゃんさん
ありがとうございました。
今回の問題をまとめますと
私のVC++expressは、とっちゃんさんのご指摘どおりExpressにSP1が適用されたものであり、テストPCでは通常のVC++ランタイム再**パッケージで動かないという状況になっていました。
そこで、とっちゃんさんよりWixインストーラにてインストーラを作成し、配布すれば良いと教えていただきました。また作成についてもとっちゃんさんのCodeZineにまとめてある記事を拝見させていただき、作成することができました。
皆様には、少ない情報のなか、お答えいただきありがとうございました。
また、よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)