1

Okuma コントロールで実行され、アプリケーション設定を持つアプリケーションを作成しています。アプリケーションの設定は簡単にバックアップできることが条件の一つなので、アプリケーションディレクトリに保管しています。アプリケーションは D: に移動するため、コントロールで動作しますが、誰かがアプリケーションを PC の C ドライブにインストールすると、アプリケーションは独自のアプリケーション ディレクトリにアクセスできず、エラーが発生します。

条件:

  • ウィンドウズ7
  • P300 制御
  • D ドライブにアプリケーションをインストール中
  • 誰かが PC の C ドライブにインストールした場合に動作する必要があります

すべてのアプリケーション設定を配置する標準的な場所はありますか?

4

1 に答える 1

2

アプリケーションのインストール ディレクトリにアプリケーションの設定とその他のデータを引き続き保持します。「PC のみ」のインストールのためだけにディレクトリの場所を変更する必要はありません。

ファイル アクセスの問題の解決策は、インストール中にファイルのアクセス許可を変更することです。

たとえば、誰かが WIX インストーラーを使用して投稿したこの回答

同様の質問がここで回答されています

これに似たコードを使用して、インストール中にアクセス許可を変更できます (ユーザーが管理者権限を持っている場合)。

using System.Security.Principal;

public static void SetPermissions()
{
String path = GetPath();
try
{
    // Create security idenifier for all users (WorldSid)  
    SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);  
    DirectoryInfo di = new DirectoryInfo(path);  
    DirectorySecurity ds = di.GetAccessControl();  

    // add a new file access rule w/ write/modify for all users to the directory security object

    ds.AddAccessRule(new FileSystemAccessRule(sid, 
        FileSystemRights.Write | FileSystemRights.Modify,
        InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit,   // all sub-dirs to inherit
        PropagationFlags.None,
        AccessControlType.Allow));                                            // Turn write and modify on
    // Apply the directory security to the directory
    di.SetAccessControl(ds);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
于 2014-05-08T14:35:03.243 に答える