windows-runtime - 从辅助程序集中部署支持文件

标签 windows-runtime

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

数据库确实属于手机和 WinRT 之间共享的“核心”程序集,但如果我将文件放入核心项目中(位于名为 Data 的自定义目录中),将其定义为内容并设置“始终复制”标志,该文件就会执行此操作不会被复制到应用程序安装文件夹。

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

感谢帮助

最佳答案

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

关于windows-runtime - 从辅助程序集中部署支持文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14586945/

相关文章:

c# - 为什么 MS 在新的 Windows 应用商店应用模板中去掉了 BindableBase?

xaml - ListViewItem 选择颜色覆盖

windows-8 - 如何使用 nuget 分发特定于处理器的 WindowsStore 程序集

c# - MediaCapture StartPreviewAsync 失败

c# - WinRT 中字段的正确命名约定是什么

c# - WinRTXAML 工具包 BindableSelection 无法正常工作

c# - WinRT xaml 中的本地化

c# - 弹出按钮更改页面的主题

c# - 托管 WinRT API 是否包括计算 MD5 哈希的方法?

c# - 适用于 Windows 应用商店应用的 ServicePoint.Expect100Continue