【问题标题】:Wix - File is locked for delete after opening its databaseWix - 打开其数据库后文件被锁定以删除
【发布时间】:2014-03-17 10:25:47
【问题描述】:

我在尝试使用 WindowsInstaller 库或 Wix Microsoft.Deployment.WindowsInstaller 时遇到了一些问题。
我遇到了该进程正在使用的文件的异常,即使我已经关闭了所有记录、视图和数据库并处理了它们,我也无法删除它。

try
{
   string currentDir = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.FullName;
   string msiPath = "PathTo\MyMSI.msi";

   using (InstallPackage installPackage = new InstallPackage(msiPath, DatabaseOpenMode.ReadOnly))
   {
       string query = "SELECT * FROM Property WHERE Property = 'ProductVersion'";
        using (View view = installPackage.OpenView(query))
        {
            view.Execute();
            using (Record record = view.Fetch())
            {
               string version = record.GetString(2);
               Console.WriteLine(version);
               record.Close();
            }

            view.Close();
         }

         installPackage.Close();
    }

    File.Delete(msiPath);
}
catch (Exception e)
{
   Console.WriteLine(e.Message);
}  

我仍然得到以下信息:

对路径“PathTo\MyMSI.msi”的访问被拒绝。

我也试过这个对象

数据库

任何帮助将不胜感激。

【问题讨论】:

  • 一切似乎都井然有序。您使用的是什么版本的 WiX?
  • @Christopher Painter 您好,感谢您的回复。我正在使用 Wix 3.8。我相信它是最新的

标签: c# database view wix windows-installer


【解决方案1】:

我能够弄清楚是什么阻止了删除操作。
该文件似乎是只读。 我不知道为什么会出现这种异常,但以下解决了它:

//removing read only from file in order to interact with it
FileInfo fileInfo = new FileInfo(msiPath);
 if (fileInfo.IsReadOnly)
 {
   fileInfo.IsReadOnly = false;
 }  

希望它能帮助其他人。

感谢所有为您提供帮助的人。

【讨论】:

  • 当您正确处理所有对象时,我想到了这一点。
【解决方案2】:

以下是您可以针对您的问题采取的一些步骤:

  1. 请稍等,然后再次尝试删除文件,有时 Windows 或使用该文件的程序可能仍在关闭,因此仍在使用您尝试删除的文件。
  2. 关闭和资源管理器窗口并重新打开。
  3. 使用该文件找到程序并关闭它。如果您不确定哪个程序正在使用该文件,请关闭所有程序,直到您能够删除该文件。
  4. 尝试使用解锁器,这是一种免费软件程序,旨在解锁 Windows 或其他程序正在使用的任何文件,而无需重新启动计算机。
  5. 重新启动计算机。如果关闭所有程序后仍无法删除该文件,则可能是后台的某些东西仍在使用该文件。
  6. 如果重新启动计算机后仍无法删除文件,请将计算机启动到安全模式并删除文件。

谢谢

【讨论】:

  • 谢谢 我尝试了你的建议,但没有奏效。我已经弄清楚是什么问题了。最好的问候。
  • 这似乎是一个针对超级用户的答案,而不是手头的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 2019-02-05
  • 2015-12-24
相关资源
最近更新 更多