26

asp.net mvc4 プロジェクトの実行中に、1 日に数回、このエラーが発生します。それが何を意味するのか、またはそれを修正する方法を尋ねているわけではありませんが、それを引き起こすために何をしていますか? それは本当に私を悩ませ始めています.ワークフローを変更することでそれをなくすことができれば、私はそうします.

ファイルが既に存在する場合、'<アセンブリ>' を作成/シャドウ コピーできません。

上で述べたように、プロジェクトは MVC4 アプリケーションです。私のワークフローは通常です。

  • 変更を加えます (コードまたは html)
  • コードの場合は、プロジェクトを再構築します (キーボード ショートカット CTRL+SHIFT+B を使用)。
  • ページを更新
  • 迷惑なエラーを見る
    • 溶液をきれいにする
    • ソリューションを再構築する
    • ページの更新
  • 変更を確認する
  • 10に行く

(デバッガーが接続されていても、接続されていなくてもエラーが発生します。) このエラーを回避する方法を教えてくれる人には永遠に感謝し、すぐに賞賛をツイートします。

4

3 に答える 3

7

このエラーの原因は、シャドウ コピーを実行しているようです (明白なことを述べています...)。つまり、あるフォルダーでファイルを生成し、それを読み取って別の場所にコピーします。問題の原因は、最初のファイルが生成されているかどうか、およびそのファイルがいつ/どのようにコピーされたかにあると思います。この最初のファイル (シャドウ コピーされる) は再生成する必要があるので、シャドウ コピーを再実行する必要がありますか?

この投稿には次のように書かれています。

デフォルトでは、ASP.NET によって作成されたすべてのアプリケーション ドメインでシャドウ コピーが有効になっています。読み込まれたアセンブリはシャドウ コピー キャッシュ ディレクトリにコピーされ、そこから使用されます。元のファイルがロックされておらず、変更できるようにします。

そしてそれらの修正は、シャドウコピーを防ぐことです。しかし、私は個人的に、asp.net コンテキストでシャドウ コピーが何をするかを完全には理解していません。

<configuration>
    <system.web>
        <hostingEnvironment shadowCopyBinAssemblies="false" />
    </system.web>
</configuration>

この投稿では、インデックス作成やウイルス対策を無効にすることについて説明しています。これは、シャドウ コピーがまったく同じファイルをコピーしようとしているときに、プロジェクトをビルドすると新しいファイルが生成され、ウイルス対策 (またはインデックス サービス) がそれらにアクセスしてロックすることを示唆しています。

私は彼のエラーを定期的に受け取りますが、私が行う特定のアクションがエラーの原因であることがわかりません。コードを変更し、F5 (実行/再生ボタン) を押して、Web ブラウザーでエラーを取得し、Web ブラウザーを閉じて、もう一度 F5 を押します。それは今動作します。私はきれいにしません、私は再構築しません。ただし、2 回目の F5/Run では、VS がコードの変更がないことを検出したので、シャドウ コピーがやり直されていないのではないでしょうか? または、今回はシャドウ コピーのタイミングが少し異なり、動作する可能性があります。

于 2013-06-18T10:02:37.960 に答える
1

Web プロジェクトに新しい画像を追加した後、このエラーを受け取りました。

VS では、各イメージに「出力ディレクトリにコピー」というプロパティがあります。「常にコピー」を選択すると、メッセージが表示されました。

「コピーしない」に変更しました-今は幸せです。

それが誰かを助けることを願っています。

于 2016-04-11T15:33:55.867 に答える