3

これは私が最近抱え始めた奇妙な問題です。私のチームは COTS アプリケーションを開発しており、数人がコードを担当しています。数週間前、デバッグ (およびコンパイル済みの EXE の実行) を試みたときに、次のエラー メッセージが表示されました。

「Windows は、指定されたデバイス、パス、またはファイルにアクセスできません。アイテムにアクセスするための適切な権限がない可能性があります。」

結局、このコード スニペットをリファクタリングする必要がありました。

mcolSchedulesNeedingOverride(New Guid(lstrErrorParts(0))) &= vbNewLine & lstrErrorParts(2)

これに:

Dim lguidKey As New Guid(lstrErrorParts(0))
Dim lstrErrorMsg As String = mcolSchedulesNeedingOverride(lguidKey)
lstrErrorMsg &= vbNewLine & lstrErrorParts(2)
mcolSchedulesNeedingOverride(lguidKey) = lstrErrorMsg

これにより、VS は実際に機能する EXE を生成することができました。理由はよくわかりませんが、うまくいきました。どのアセンブリに問題があるかを特定するために、peverify ユーティリティを使用しました。

昨日約25個のファイルが更新された後、別のコードブランチで同じ問題が発生しました。これは追跡するのが楽しくないので、誰かがなぜこれが起こっているのかについての洞察を提供してくれることを望んでいました.

peverify は、すべてアセンブリが正しいことを示していますが、System.Windows.Forms.dll に対して 90 以上のエラーを吐き出しています!

誰にもヒントはありますか?

4

2 に答える 2

2

プロジェクトに取り組んでいる開発者が複数いるとのことですが、彼らもこの問題を経験しているのでしょうか。

それがあなたのマシンでのみ発生している場合、コード内の問題を探しに行くよりも(あなたが行ったリファクタリングはエラーとはまったく関係がないように見えるので、後でそれが機能していた理由は別だったと思います)、探しに行きますあなたの環境の問題。

.NET Framework のインストールで何かが壊れているか、正しく構成されていない可能性があります。エラー メッセージをスローしているファイルを確認できますか? マシン上のアセンブリに対して定義されたポリシーはありますか?

于 2008-11-25T16:45:09.383 に答える
0

ネットや信頼できない場所からバイナリを取得すると、このエラー メッセージが表示されることがよくあります。Windows は「役に立ち」、アクセスをブロックします。

ファイルを右クリックしてプロパティを選択し、「ブロック解除」

エラーが他の場所で異なって現れるのは奇妙です。したがって、これはまったく関係がない可能性があります。ただし、マシン上でビルドすると、ダウンロードしたコピーとは異なる方法でファイルを処理するウィンドウが表示されます...ただし、それが再起動にどのように関係するかはわかりません。

編集:私が言及していた「機能」のより完全な説明については、このKBの記事を参照してください

于 2008-11-26T00:27:01.323 に答える