0

私はあなたの助けを求めたい奇妙な問題に遭遇しました.

私のモバイルアプリでは、プログラムはWindows C#プログラム(および依存関係)をSDカードに書き込み、SDカードがPCにマウントされているときにユーザーがPCで実行できるようにします。プログラムと依存関係は、このようにルート レベルでコピーされます。

  • myprogram.exe
  • myprogram.exe.config [参考情報: config にはランタイム バインディングと Libs フォルダーがあります]

  • Libs\Interop.iTunesLib.dll

このようなユーザーからエラーレポートを受け取りました。私の側ではこれを再現できませんでした

OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
Assembly version: 1.0.0.0
CurrentDirectory: C:\Users\yasd\AppData\Local\Temp\WPDNSE\SID-{10001,SECZ9519043CHOHB,4820242432}
Problem: Could not load file or assembly 'Interop.iTunesLib, Version=1.11.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

今私が見る問題は、レポートに表示されるプログラムの現在のディレクトリが

"C:\Users\yasd\AppData\Local\Temp\WPDNSE\SID-{10001,SECZ9519043CHOHB,4820242432}" 

私はそれが次のようなものになることを期待していました

F:\

ユーザーは、Windowsの一時フォルダーではなく、SDカードのルートから実行したためです。

私の評価では、このパスが間違っているため、依存アセンブリを読み込めませんでした。

SDカードから実行した場合、C#の一時ディレクトリに何かが入るのはなぜですか??? SDカードからファイルをコピーせず、SDカードから実行したことをユーザーに尋ねました。

助けてください、どんなアドバイスでも大歓迎です。

4

2 に答える 2

0

私はそれを解決しました。ユーザーは SD カードからではなく、MTP を使用するポータブル デバイス セクションと呼ばれるものから実行しました。

于 2012-07-01T03:45:48.453 に答える
0

これは、ファイルのロックがさまざまな問題を引き起こすのを防ぐために行われるシャドーイングに関係していると思われます。

于 2012-05-17T23:11:32.457 に答える