2016-10-20 16 views
0

私はC#wpf .Net 4.5でC#ライブラリのdll を使用しているアプリケーションを.net 4.0で作成しました。このDLLは、exeディレクトリになければならないファイルを使用します。 私のすべてのコンピュータで私のアプリケーションが動作しますが、このアプリケーションを他のいくつかのコンピュータに送信すると、アプリケーションが私の例外をスローして、使用しているDLLがファイルを見つけられていないことを伝えます。私はdllを逆コンパイルしてコードをチェックアウトしましたが、作業ディレクトリはいつでも変更されませんが、それを使用します。Streamreaderで一部のコンピュータでファイルが見つかりません

これはコンピュータの言語と関係がありますが、わかりません。

私はDirectory.SetCurrentDirectory(...)を私のexeパスに設定しました。

誰かがこれを解決する手がかりを持っていますか?

編集:完全な誤ったエラーは、Streamreaderがファイルを探すパスを教えてくれません。 私はClickonceのデプロイメントを使用しましたが、今はバイナリフォルダをコピーして、ファイルが正しい場所にあることを保証します。

+0

コードを少し見せてください。たとえば、そのファイルのパスを設定するか、実行可能ファイルであれば、どのように起動しますか?また、ClickOnceを使用してアプリをデプロイしていますか? – Pikoh

+0

どのファイルですか?なぜファイルが存在すると仮定しますか?アプリケーションがアクセスしようとしたパスを示す*完全な実際のエラーは何ですか?ハードコードされたパスを使用しているか、インストールプログラムがファイルをコピーできません。現在のデフォルトのディレクトリ*は* .exeのディレクトリです。 –

+0

あなたは共有フォルダを使用していますか?フォルダ名はドライブ文字(f:¥など)またはネットワークパス名(\\ mycomputer)で始まりますか?他のユーザーがファイルにアクセスできるようにする資格情報ですか?他のPCのWindowsエクスプローラでファイルを見つけることができますか?他のコンピュータでメモ帳を使用してファイルを開くことはできますか? – jdweng

答えて

0

これはウィンドウの言語と関係があると思われます。

この行は問題を解決しましたが、誰かが理由を説明するとうまくいくでしょう。

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; 
+0

NOコードを示しているので、何も説明することはできません。私は他のスーツで私のクリスタルボールを忘れました... – Pikoh

+0

私は書いていないDLLのコードをどのように表示できますか?私が知っていることは、それがいくつかのコンピュータでファイルをロードできないということだけです。 –

+0

あなたの質問は「私は*アプリケーションを作った」と言っています!! – Robert

関連する問題