我的UWP应用的Assets
文件夹中有一些(SQLite .db)文件,其Build Action
在其属性中设置为Content
。
当我构建应用程序时,这些应用程序会部署到应用程序,并且可以在运行时从Windows.ApplicationModel.Package.Current.InstalledLocation
StorageFolder进行访问。
但是,我需要在首次启动应用时将这些位置移动到另一个位置(ApplicationData.Current.LocalFolder
)。
它们包含初始数据,但稍后可能会从服务器中替换为新的.db文件。我将它们从这个初始位置移动到另一个位置,这样只有在第一次启动时才会发生(因此,在进一步启动时,文件不在InstalledLocation中,因此它不会覆盖可能更新的文件)。
如果我这样做,即使我卸载了应用程序,它们也不再部署在应用程序的进一步版本上。让它们重新部署的唯一方法是删除它们并将它们重新添加到项目中。
这是预期的行为吗?如果是这样,也许我会以错误的方式接近这个?
答案 0 :(得分:0)
我的解决方案是添加一个预构建事件来“触摸”我正在移动的文件(.db文件)。
在项目的属性中,转到构建事件并将以下内容添加为预构建事件命令行:
COPY /B $(ProjectDir)Assets\*.db+,, $(ProjectDir)Assets\
Windows没有touch
命令,但上面的代码实际上是这样 - 它更新了 Assets中所有.db文件的修改日期 em>项目的文件夹)。 Thanks!
然后Visual Studio会认为文件已经更改,并会在每次构建时重新部署它们。