1
這是我的問題,我需要在安裝我的product.msi安裝程序時對文件夾中的現有配置文件進行備份。我嘗試使用(使用自定義操作)Installer Class
它的作品,但不是在一個正確的方向。如何備份現有的配置文件?
僅在整個安裝完成後才執行備份。即,安裝後,我用來獲得3個配置文件,這3個文件被作爲文件夾中的備份。
我的安裝類:
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
string directory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
String folderPath = directory + "\\Myproduct Before " + version;
string[] newPath = Directory.GetFiles(directory, "*.config");
int newPathCounter = newPath.Count();
if (newPathCounter != 0)
{
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
for (int i = 0; i < newPath.Count(); i++)
{
string source = newPath[i];
string destination = source.Replace(directory, folderPath);
File.Copy(source, destination, true);
}
}
else
{
MessageBox.Show("No files to copy");
}
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand)]
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
}
我也試過在OnBeforeInstall
給這個代碼,但同樣的事情發生。請對此提出建議。