DOBON.NET DOBON.NETプログラミング掲示板過去ログ

CompactFrameWork使用時のexe起動

環境/言語:[OS : Windows CE / 言語 : C# / .NET Framework : その他]
分類:[.NET]

【解決したい問題】

お世話になります。

CompactFrameWorkを使って開発しています。
AというexeからBというexeを起動しようとしているのですが、
B.exeを起動しようとすると(Process.Start)、
「ファイルまたはアセンブリ名 XXXXXX、またはその依存関係の1つが見つかりませんでした。」
という例外が表示され起動させることができません。

リリースでビルドし、モバイルデバイスにReleaseフォルダ配下をすべては位置しています(A.exeもB.exeもすばて同じフォルダ内に展開しています)。

※A.exe、B.exeともに単体で起動することは確認しています。

回避方法等わかるかたいましたら、ご教授お願いします。

【解決するために何をしたか】

以下のページは参考にしてみました

http://dobon.net/vb/bbs/log3-13/7310.html
Jinさんこんにちは、おのでらです。

Process.Start に渡しているパスは絶対パスでしょうか相対パスでしょうか?

相対パスであれば、カレントディレクトリがどこにあるかチェックしてみてください。(Directory.GetCurrentDirectory など)
絶対パスであれば、ルート周りのパスが正確であるかどうかチェックしてください。(Windows とは違うので)
■No26527に返信(おのでらさんの記事)
> Jinさんこんにちは、おのでらです。
>
> Process.Start に渡しているパスは絶対パスでしょうか相対パスでしょうか?
>
> 相対パスであれば、カレントディレクトリがどこにあるかチェックしてみてください。(Directory.GetCurrentDirectory など)
> 絶対パスであれば、ルート周りのパスが正確であるかどうかチェックしてください。(Windows とは違うので)

お返事ありがとうございます、Jinです。

B.exeは絶対パスで指定してまして、そのパスをモバイル側で直接叩くと実行されるので、exeの指定までは出来ているようです。

その他
 エラーメッセージの
 「ファイルまたはアセンブリ名 XXXXXX、またはその依存関係の1つが見つかりませんでした。」
 XXXXXXはカスタムコントロールでしたので、参照を外してやってみたのですが、別の参照が見つからないというメッセージに変わるだけでダメでした。

よろしくお願いします。
■No26525に返信(Jinさんの記事)
> 環境/言語:[OS : Windows CE / 言語 : C# / .NET Framework : その他] 
> 分類:[.NET] 
バージョンは何でしょう?

> 「ファイルまたはアセンブリ名 XXXXXX、またはその依存関係の1つが見つかりませんでした。」
> という例外が表示され起動させることができません。
System.SR.DLL をインストールしていない時に出るメッセージ……とも
微妙に違うかな?

> ※A.exe、B.exeともに単体で起動することは確認しています。
A / B どちらの問題であるかを切り分けるため、呼び出される側の EXE を、
非.NET製の単純なアプリに差し替えてみては如何でしょう。
お返事ありがとうございます、Jinです。

>バージョンは何でしょう?
→CompactFrameworkのv2.0になります

>System.SR.DLL をインストールしていない時に出るメッセージ……とも
>微妙に違うかな?
→すみません、"System.SR.DLL"を調べてもよくわからなかったのですが、
「リソース アセンブリが見つかりませんでした。」
のことをおっしゃられているのであれば、メッセージが異なります。

>A / B どちらの問題であるかを切り分けるため、呼び出される側の EXE を、
>非.NET製の単純なアプリに差し替えてみては如何でしょう。
→Aからnotepad.exeを起動してみたところ、正常に起動することを確認しました。
・・・B.exeは単体でも起動するのに。

以上です、よろしくお願いします。
■No26531に返信(Jinさんの記事)
> >A / B どちらの問題であるかを切り分けるため、呼び出される側の EXE を、
> >非.NET製の単純なアプリに差し替えてみては如何でしょう。
> →Aからnotepad.exeを起動してみたところ、正常に起動することを確認しました。
> ・・・B.exeは単体でも起動するのに。

では次に、「特に何もしない.NET アプリ(Console or Form)」C.exe を作り、
それを B.exe と差し替えてみた場合はどうですか?

それで起動するなら、B.exe の何が問題になっているかを追跡するために、
C.exe の機能を、徐々に B.exe に近付けていってみてください。
お世話になります、Jinです。

返事が遅くなって申し訳ないです。

適当なexeを作って試してみたのですが、
同じように例外を吐くだけでした。

AのほうでもBの参照が必要かと思い、
Bで必要とする参照をAで設定したのですが、変わりませんでした。

納期が近いので、とりあえずAもBも同じプロジェクトに入れて、
FromをShowすることにしました。
できれば今後のために別のexeにしたかったのですが。。。

以上です。

・・・解決済みにした方が良いのでしょうか?
> ・・・解決済みにした方が良いのでしょうか?

しなくて結構です。解決したときに、解決済みにしていただければ助かります。

DOBON.NET | プログラミング道 | プログラミング掲示板