1

ユーザー アプリケーション データ フォルダーの下に SQL Server CE 4.0 (SDF) ファイルがあります (\Programs Files\ フォルダーにある場合、Win7 UAC のために DB を変更できないためです。インストール時に) DB の新しいパスを指すように .EXE.CONFIG ファイル (ConnectionString) を変更しますが、明らかに \Program Files\ フォルダー内の .EXE.CONFIG ファイルを変更するアクセス権がありません ...

では、人々はこの問題をどのように解決するのでしょうか? .EXE.CONFIG ファイルを SDF ファイルと同様にユーザーのアプリケーション データ フォルダに展開できますか? そうでない場合はどうですか?\Program Files\Application フォルダにフル アクセスできるようにするには、特別なアクセス権を付与する必要があるとは思えません...

私は VS2010 を使用しており、標準の配置プロジェクト (MSI) を使用していますが、.EXE をある場所に配置し、別の場所に .EXE.CONFIG を配置する方法がわかりません (これは可能ですか? これは正しい解決策ですか?)

ありがとう、

4

1 に答える 1

1

接続文字列で変数を使用する%APPDATA%と、構成ファイルを変更する必要がなくなります。これは、ユーザー名を含むパスをハードコーディングするよりも柔軟性があります。コンピューターのすべてのユーザーがプログラムを使用し、独自の.sdfファイルを持つことができるからです。

ただし、環境変数は .NET では自動的に展開されないEnvironment.ExpandEnvironmentVariableため、次のメソッドを使用して強制する必要があります。

// Example appSetting element:
//   <add key="examplePath" value="%APPDATA%\example.txt" />

string path = System.Configuration.ConfigurationManager.AppSettings["examplePath"].ToString();
path = Environment.ExpandEnvironmentVariables(path);
System.IO.File.WriteAllText(path, "foobar");
于 2013-02-22T22:12:10.273 に答える