Это было решение, которое я использовал. Это комбинация советов от jdweng и Shawn . Сначала я сделал путь dbPath
административным общим ресурсом. Оттуда я заставил программу сделать временную локальную копию базы данных с административного ресурса:
private static void MakeTempDatabaseCopy(string dbPath, string exePath)
{
try
{
File.Copy(Path.Combine(dbPath, "Data", "Database.db"), Path.Combine(exePath, "Temp", "Database.db"), true);
FileInfo directoryInfo = new FileInfo(Path.Combine(exePath, "Temp", "Database.db"));
directoryInfo.Attributes = FileAttributes.Temporary;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error Retrieving Database", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
После этого все методы могут читать из локальной копии. Поскольку File.Copy()
использует логическое значение, все, что требует обновления базы данных, может просто перезаписать локальную копию новой копией из административного общего ресурса. Надеюсь, это поможет!