2

MVVMCross を使用して記述された電話アプリケーションを Windows RT に移植しています。アプリケーションは SQLite を使用し、デプロイ時に空ではないデータベースを持っているため、アプリケーションの起動時にインストール フォルダーにパッケージ化し、LacalFolder にコピーする必要があります。

データベースは実際には電話と WinRT の間で共有される "Core" アセンブリに属していますが、ファイルを Core プロジェクト (Data というカスタム ディレクトリ) に配置すると、それを Content として定義し、Copy Always フラグを設定すると、ファイルはコピーされません。アプリケーションのインストール フォルダに移動します。

UI プロジェクトの下のディレクトリにファイルを配置すると、ファイルは期待どおりにコピーされます。同じリソースに対して 2 つのファイルを保持しないようにするための提案 (およびこれが引き起こす問題) はありますか?

手伝ってくれてありがとう

4

1 に答える 1

2

Windows 8 WinRT プロジェクトは既定で、ファイルのルーズ パッキングを行うコンテンツ タイプを使用します (ファイルはアセンブリに含まれません)。Core アセンブリがプロジェクトとしてのソリューションの一部である場合、VS はそれを適切にパッケージ化し、すべてのコンテンツを appx の「Core」サブフォルダーにコピーします。ソリューションで dll ファイルを参照するだけの場合、リソース ファイルはパッケージ化されません。その場合の解決策は、これらの追加ファイルを dll と共に展開するために何かを行うことです。1 つのオプションは、Tim Heuer のブログ投稿で説明されているように、アセットと共に .vsix として dll をパッケージ化することです。. もう 1 つは、実行したことを実行して、ファイルをアプリ プロジェクトに配置することです。ファイルのコピーを作成しないように、ファイルをアプリ プロジェクトの "As Link" に追加できます。これにより、Visual Studio は、コピーを作成する代わりに、ファイルへの一種の論理/シンボリック リンクを作成します。ソリューション エクスプローラー/アプリ プロジェクトで、[追加/既存の項目] を選択し、ファイルを参照して、[追加] ボタンを押す代わりに、ボタンのドロップダウン トライアングルを使用して [リンクとして追加] を選択します。

于 2013-01-29T16:55:04.900 に答える