私は C# が初めてで、基本的にゲームの個人ファイルを更新する単純な Windows フォーム アプリケーションを作成しました。
毎回バージョンを変更するために、特定のフォルダーを手動で移動および削除する必要があります。私はこれを成功させました。
ただし、それを提供する前に、本当に改善する必要があります。プロセスの名前を変更し、説明 ETC を削除する必要があることはわかっています。
エラーに出くわしました。推測する代わりに、これを行う方法について経験豊富な人から意見を得るのが最善だと思います。
Inno Setup を使用して、アプリケーションのインストーラーを作成します。これにより、プログラム ファイルが 32 ビットおよび 64 ビットになることを確認できます。だから私はこれがプログラムファイルにあることを知っています。
だから今、私はこれを正しい方法で行ったかどうか疑問に思っていますか? 私はこの形式を使用してプログラムファイルを見つけていました:
string programFilesFolder = Environment.GetEnvironmentVariable("PROGRAMFILES(X86)") ?? Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
ただし、これはすべての Windows システム (XP、Vista、Win7、Win8) で機能し、完全に正確ですか? 上記を使用してから、これを使用するつもりでした:
string PATCHSELECTOR = Path.Combine(programFiles, @"PATCH SELECTOR");
if (Directory.Exists(PATCHSELECTOR))
{
string GamereliteFolder = Path.Combine(programFiles, @"GAMERELITE~1");
if (Directory.Exists(GamereliteFolder))
次に、string メソッドを使用してファイルを移動します。ファイルが存在する場合は、ファイルを PATCH SELECTOR から GAMERELITE にコピーする前に削除します。
また、Windows XP は、プログラムを管理者として実行する必要があるアセンブリ リソースが埋め込まれた .exe の使用をサポートしますか? 以前はUACを介してアセンブリを機能させていましたが、UACがオフになっている場合やXPの場合は常に機能するとは限らないため、代わりに管理アセンブリを試してみることにしました。
誰かが私に洞察、アイデア、またはリンクを教えてもらえますか?