2

我正在将使用 MVVMCross 编写的电话应用程序移植到 Windows RT。该应用程序使用 SQLite 并且在部署时有一个不为空的数据库,因此我希望它被打包在安装文件夹中,并在应用程序启动时复制到 LacalFolder。

该数据库确实属于手机和 WinRT 之间共享的“核心”程序集,但如果我将文件放在核心项目中(在名为 Data 的自定义目录中),将其定义为 Content 并设置 Copy Always 标志文件不会被复制到应用程序安装文件夹。

如果我将文件放在 UI 项目下的目录中,则文件将按预期复制。有什么建议可以避免为同一资源保留两个文件(以及这将导致的麻烦)?

感谢帮助

4

1 回答 1

2

默认情况下,Windows 8 WinRT 项目使用对文件进行松散打包的 Content 类型(它们不包含在程序集中)。如果您的核心程序集是作为项目的解决方案的一部分 - VS 将正确打包它,将所有内容复制到 appx 的“核心”子文件夹。如果您只是在解决方案中引用了 dll 文件 - 将不会打包资源文件。这种情况下的解决方案是做一些事情来让这些附加文件与 dll 一起部署。一种选择是将 dll 与 Tim Heuer博客文章中描述的资产一起打包为 .vsix. 另一种是做你所做的并将文件放入应用程序项目中。您可以将文件添加到应用程序项目“作为链接”以避免拥有文件的副本 - 它使 Visual Studio 为文件创建一种逻辑/符号链接而不是创建副本 - 只需右键单击文件夹中的文件夹解决方案资源管理器/应用程序项目,选择“添加/现有项目”,浏览到文件,而不是点击“添加”按钮 - 使用按钮上的下拉三角形选择“添加为链接”。

于 2013-01-29T16:55:04.900 回答