22

Visual Studio 2010 を使用していますが、Visual Studio からの出力ファイル (実行可能ファイルなど) の所有者を管理者以外のユーザーに設定または自動的に変更する方法を教えてください。

現在、すべての出力ファイルは管理者が所有しているため (Visual Studio は管理者権限で起動されるため)、アクセス許可のためにこれらのファイルを削除できないことがあります。

Visual Studio自体も(実行可能ファイルを実行した後)数分まで削除できない場合があり、これらの実行可能ファイルを再構築する必要がある場合は本当に面倒です。ここで実際の問題は何ですか?

エラー メッセージは次のとおりです。error LNK1168: cannot open [path to file].exe for writing

4

4 に答える 4

33

Wooho私はついにこれを理解しました。

これはWindows7のバグであり、Windows Server 2008(おそらく64ビットバージョンのみ)のバグである可能性があります。ApplicationExperienceサービスを無効にすると表示されます。

このサービスを再度有効にすると、この問題が修正されました。

私がどれほど幸せか想像することはできません。これは、VCだけでなく、コンパイラーをいじるだけでなく、それを締めくくるのが非常にランダムであるため、プログラミングを非常に苛立たせていました。

それが問題を引き起こしている理由については、ここでもう少し情報があります。

関連していると思われる他のSO質問のリスト:

于 2010-12-29T21:50:49.077 に答える
0

作成されたファイルは作成者によって所有されます。Visual Studio を管理者として実行している場合、所有者の観点からはそのように固執しています。

個人的には、Web アプリケーションに IIS を使用していない限り、少なくとも VS 2010 では、Visual Studio を通常のユーザーとして実行する頻度がますます高くなっています。

Visual Studio がファイルを削除できない問題に関しては、ビルド エラーで以前に見たことがあります。同じアセンブリを参照している複数のプロジェクトがある場合もあります。最善の策は、ロックを追跡して追跡することです。その後、ロックを強制終了するか、Visual Studio を再起動します。

通常、Process Explorer (SysInternals から) を使用して、ファイルのハンドルを単純に削除します。(注:これは「素晴らしい」アイデアではありませんが、うまくいきます....)

于 2010-07-22T19:42:12.713 に答える
0

誰も正しい答えを出さないので、この質問は Visual Studio ではなくオペレーティング システム内のバグとして閉じます。ファイル ハンドルが「システム」プロセス (PID 4) によって所有されているため、おそらく O/S が侵害されている可能性があります。プロセス エクスプローラーを使用してファイル ハンドルが無効であることを報告しているため、ファイル ハンドルを解放しないでください。

于 2010-07-25T22:49:55.813 に答える