16

「Program Files」ディレクトリにアプリをインストールします。そして、「ProgramData」ディレクトリの下にデータをインストールします。

Environment.SpecialFolder.CommonApplicationData

programData で、データを保存するフォルダーを作成しました。例:

C:\ProgramData\MyApp\MyData\here ファイルとフォルダーがあります

XP ではすべて正常に動作します。ただし、Vista または W7 OS ではありません。

このディレクトリ内のファイルを読み取ることはできますが、ファイルを書き込むことはできず、新しいファイルを作成することもできません。ユーザーは管理者としてログインしています。

制限なくデータを保存できる場所は? すべてのユーザーに表示されるフォルダーにデータを保存する必要があります

編集:

app.manifest ファイルに次のコードがあります。

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- Opciones del manifiesto de Control de cuentas de usuario
             Si desea cambiar el nivel de Control de cuentas de usuario de Windows, reemplace el 
             nodo requestedExecutionLevel por alguno de los siguientes.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            Si desea utilizar la virtualización de archivos y del Registro para la compatibilidad 
            con versiones anteriores, elimine el nodo requestedExecutionLevel.
        -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>
4

3 に答える 3

8

プログラムデータを保存できるさまざまな場所のわかりやすい説明は、次の場所にあります。

http://blogs.msdn.com/cjacks/archive/2008/02/05/where-should-i-write-program-data-instead-of-program-files.aspx

ProgramData に関しては、次のように述べています。

FOLDERID_ProgramData / System.Environment.SpecialFolder.CommonApplicationData ユーザーは、エクスプローラーでここを参照することを決して望まないでしょう。ここで変更された設定は、マシン上のすべてのユーザーに影響するはずです。デフォルトの場所は %systemdrive%\ProgramData で、Windows Vista のインストールでは隠しフォルダーです。ディレクトリを作成し、インストール時に必要な ACL を設定する必要があります。

于 2010-03-02T12:17:02.883 に答える
5

これはUACのことです。このSpecialFolderでファイル/フォルダーを作成/削除するために、プログラムを管理者として実行します。

于 2010-03-02T12:13:24.593 に答える
0

これは、一見すると概念的な問題です。

「ProgramData」ディレクトリではなく、いくつかのユーザー固有のファイルを使用する必要があります。必要なインストール データは、「プログラム ファイル」またはレジストリにインストールする必要があります。

于 2013-05-03T13:30:50.233 に答える