none
Windows10に変えてからデバッグなしで実行が出来なくなった RRS feed

  • 質問

  • 10月ぐらいからWindows10に替えてVisual Studioも2015に替えました。

    Visual Studio C#の既存のプロジェクトをデバッグ実行は出来るのでしばらく気づかなかったのですが、ある時

    「"xxxxx"を"xxxxx"にコピーできませんでした。10回の再試行回数を超えたため失敗しました。」

    と出ます。

    ビルドしたexeを直接エクスプローラーから実行してもタスクマネージャーにそのプロセスが残っていませんでした。もしかしたら見るところが間違っていたりしたかもしれませんが。
    Visual Studio 2015が原因ではないという理由は2013で.NET Framework2.0でビルドしたexeも動かなかったからです。

    何か原因わかりますでしょうか?


    2015年11月30日 13:22

回答

すべての返信

  • Windows 10は関係ありません。エラーメッセージの通りです。対象のファイルがロックされていてコピーできないだけです。ロックされる主な原因はプログラムが実行中のまま放置されていることです。新しいタスクマネージャの見方に慣れていないだけかもしれません。
    2015年11月30日 14:23
  • こんにちは。

    今の事象がよくわからないのですが、デバッグ実行時にエラーメッセージが出るだけですか?
    それともそもそもビルドに失敗しているのでしょうか?

    そうだとした場合、クリーンだとどうですか。失敗しますか。

    また、既存ではなく新規作成したプロジェクトではデバッグ実行可能なのか。

    2015年11月30日 14:26
    モデレータ
  • 何らかの原因でデバッグ実行がうまく行っておらず、それがexeを掴んだままになっている可能性があります。
    とりあえず、vshostのプロセスを終了させてみて下さい。
    また、
    binとobjのフォルダーをクリアしてからの再実行も有効かもしれません。
    ちなみにその既存のプロジェクトでUnityは使われていますか? 使われている場合、以下の情報がありました。

    VS "Could not copy" error
    http://forum.unity3d.com/threads/vs-could-not-copy-error.355161/


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2015年12月1日 1:49
    モデレータ
  • 詳しく説明させていただきます

    VS2015でWindowsフォームアプリケーションを作って何も手を加えずにデバッグ実行したところです。右のタスクマネージャーに「EXE単体で動かない動作確認.vhost.exe」が表示されています。

    ここでフォームを閉じてVS2015を終了させます。プロセスが消えます。


    「EXE単体で動かない動作確認.vhost.exe」プロセスは終了しました。ここで「「EXE単体で動かない動作確認.exe」をエクスプローラから起動します。タスクマネージャーにプロセスは表示されません。


    「EXE単体で動かない動作確認.exe」はロックされて削除することが出来ません。

    このような状況です。


    • 編集済み 和和和 2015年12月10日 6:14 よろしくない画像
    2015年12月1日 6:48
  • SYSTEM によってロックされているということは、たいていの場合、Windows サービスの何かが影響しているのでしょう。
    多くのケースはウィルス対策ソフト、セキュリティ関連ソフトです。
    一時的にそれらの自動保護などを無効化して現象が起きるかどうか確認してみてください。
    2015年12月1日 13:06
    モデレータ
  • 先のコメントはすみませんでした。再起動でもすれば回復すると予想していましたが、再現性のある問題なのですね。

    「Systemによってファイルは開かれている」とのことですが、具体的な調査方法を提示しますので、原因を特定しこのスレッドで公開していただけないでしょうか?

    openfilesというコマンドを使用します。

    1. 管理者コマンドプロンプトでopenfiles /local onを実行しグローバルフラグを有効化します。
    2. Windowsを再起動し、グローバルフラグを反映させます。
    3. 問題となる操作を行い、ファイルがロックされる状況を再現します。
    4. 管理者コマンドプロンプトでopenfiles /query(他、適切な引数を)を実行しexeをロックしているプロセスを特定します。
    5. 最後にopenfiles /local offを実行しグローバルフラグを無効化した上でWindowsを再起動し元の設定に戻します。

    パッと見、プロセス一覧にPowerDVDが見えますがその辺りかも??

    2015年12月1日 13:46
  • ありがとうございます。

    openfilesでテキストに出力してexeファイル名で検索しました。

    exeファイル名が長くて全部入りきらなかったので「locktest.exe」に変えました。

    しかしそのファイルを掴んでいるプロセスは特定できませんでした。

    sakuraで開いたテキストファイルはロックしていて一覧に表示しているのでopenfilesの使い方はあっていると思います。

    locktest.exeは単体で起動するとマウスポインタは矢印&砂時計に暫くなることから起動しているが状態が不明というような気がします。

    ふと思いついてlocktest.exeをビルドしたソリューションからプロセスをアタッチしてみました。

    するとプロセスが見えました。
    ソースもあるのでアタッチすれば原因分かるかと思いきやソースが見えない状態です。


    • 編集済み 和和和 2015年12月1日 16:52
    2015年12月1日 16:52
  • クリーンインストールしたら全部動くようになりました。

    一時期動かなくなったIL Visualizerも動きました。

    • 回答としてマーク 和和和 2016年5月12日 12:25
    2016年5月12日 12:25