2

私は Entity Framework の移行、SQL Server CE 4.0 を使用しており、Clickonce を通じて配布しています。

app.configの中では、datasourceですDataSource=|DataDirectory|Mydb.sdf

<connectionStrings>
    <add name="MyContext" connectionString="DataSource=|DataDirectory|Mydb.sdf" providerName="System.Data.SqlServerCe.4.0"/>
  </connectionStrings>

Windows XP と Windows 7 に展開すると、データベースは次のように展開されます。

C:\Users\kev\AppData\Local\Apps\2.0\Data\8Y5K2R4J.AM9\Y3D5WADC.HAX\myapp..tion_ab2e572047b7b084_0001.0000_66744c6353cd31ca\Data

application(exe) directory問題は、Windows 8 のスマート スクリーンでプロンプトが表示され、ユーザーが [続行] をクリックすると、データベースは上記の場所ではなく に作成されます。

上記のディレクトリにデータベースを作成するように明示的にclickonceに指示するにはどうすればよいですか?


これを見つけました:

Windows 8のスマートスクリーンのため動作しません。

http://support.microsoft.com/?kbid=920700

|データディレクトリ| 置換文字列のサポート |DataDirectory| (パイプ記号で囲まれている) は、データベース パスを示す置換文字列です。したがって、コードに絶対パスを含める必要はありません。コードにフル パスを含めると、データベースのフル パスが別の場所でシリアル化される可能性があるため、問題が発生する可能性があります。|データディレクトリ| また、置換文字列を使用すると、プロジェクトの共有とアプリケーションのデプロイが容易になります。

たとえば、コードに完全なパスを含めると、アプリケーションは次の接続文字列を持つことができます。

Data Source= c:\program files\MyApp\Mydb.sdf |DataDirectory| を使用する場合 置換文字列、アプリケーションは次の接続文字列を持つことができます。

データ ソース = |DataDirectory|\Mydb.sdf DataDirectory プロパティを設定するには、AppDomain.SetData メソッドを呼び出します。DataDirectory プロパティを設定しない場合、データベース フォルダへのアクセスに次のデフォルト ルールが適用されます。•ClickOnce で実行されているアプリケーションの場合、データベース フォルダーは、作成された特定のデータ フォルダーを使用します。注 .NET Compact Framework は、Microsoft Windows Mobile ベースのデバイスで AppDomain.SetData メソッドをサポートしていません。アプリケーションが Windows Mobile ベースのデバイスで AppDomain.SetData メソッドを呼び出すと、エラー メッセージが表示されます。

4

0 に答える 0