尝试使用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'。
我也试过了对象
数据库
任何帮助将不胜感激。
答案 0 :(得分:4)
我能够找出阻止删除操作的内容 该文件似乎是只读。 我不知道为什么会遇到这种异常,但以下问题解决了这个问题:
//removing read only from file in order to interact with it
FileInfo fileInfo = new FileInfo(msiPath);
if (fileInfo.IsReadOnly)
{
fileInfo.IsReadOnly = false;
}
希望它会帮助别人。
我感谢所有在这里为您提供帮助的人。
答案 1 :(得分:0)
以下是您可以针对您的问题采取的一些步骤:
由于