いいえ、それは不可能です。c:\program ファイルへの書き込みが突然禁止されるような一般的な Winforms または .NET Framework の変更はありませんでした。またはそれについては可能です。
考えられる唯一の説明は、以前に Visual Studio 2005 を使用していたということです。Vista サービス パックのない元の RTM バージョンです。これは Vistaより前に出荷されたため、プログラムが UAC と互換性があることを Windows に知らせるために必要なマニフェストを EXE にまだ追加していませんでした。そのマニフェストが Project + Add New Item、General、Application Manifest File でどのように見えるかを確認できます。必須のエントリは次のとおりです。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
level
c:\program ファイルに書き込めるようにするには、属性を「requireAdministrator」に変更する必要があります。
そのマニフェスト エントリがないと、Windows はプログラムを、UAC をまだ認識していないレガシ プログラムとして扱います。したがって、c:\program files に書き込むことができるようです。しかし実際には、Windows はファイル アクセスを分離ストレージにリダイレクトします。
マニフェストの変更は機能しますが、ユーザーがプログラムを頻繁に実行する場合、おそらくうまく受信されないでしょう。コードを UAC と互換性を持たせることがより良い解決策であり、代わりにファイルを AppData に書き込みます。