我正在将一个使用MVVMCross编写的手机应用程序移植到Windows RT。该应用程序使用SQLite,并且有一个在部署时不为空的数据库,因此我希望在应用程序启动时将其打包到安装文件夹anc中,并复制到LacalFolder。
数据库实际上属于phone和WinRT之间共享的“核心”程序集,但如果我将文件放在核心项目中(在一个名为Data的自定义目录中),将其定义为Content,并设置Copy Always标志该文件不会被复制到应用程序安装文件夹中。
如果我将该文件放在UI项目下的一个目录中,则会按预期复制该文件。有什么建议可以避免为同一资源保留两个文件(以及这会带来的麻烦)?
感谢你的帮助
发布于 2013-01-30 00:55:05
默认情况下,Windows 8 WinRT项目使用对文件进行松散打包的内容类型(它们不包括在程序集中)。如果您的核心程序集是您的解决方案的一部分,作为一个项目- VS将正确地打包它,将所有内容复制到appx的" Core“子文件夹中。如果您只是在解决方案中引用了dll文件,则资源文件将不会打包。这种情况下的解决方案是执行一些操作,使这些附加文件与dll一起部署。一种选择是将dll与Tim Heuer的blog post中描述的资产一起打包为.vsix。另一种方法是按照您的方式将文件放入应用程序项目中。您可以将文件“作为链接”添加到应用程序项目中,以避免文件的副本-这会使Visual Studio创建到文件的某种逻辑/符号链接,而不是创建副本-只需右键单击解决方案资源管理器/应用程序项目中的文件夹,选择" add /Existing Item",浏览到文件,而不是点击"Add“按钮-使用按钮上的下拉三角形选择"Add As Link”。
https://stackoverflow.com/questions/14586945
复制相似问题