Я занимаюсь разработкой приложения wpf c # с управлением лицензией.когда клиент получает свою лицензию, приложение позволяет ему импортировать его с помощью OpenFileDialog, этот файл лицензии представляет собой XML (License.xml).При импорте этого файла он копируется в «ExecutablePath»
openFileDialog.ShowDialog();
string filePath = openFileDialog.FileName.Trim();
if (filePath != string.Empty)
{
string filename = Path.GetFileName(filePath);
if (filename.ToUpper() == "LICENCE.XML")
{
if (!ReadLicense(filePath))
{
return false;
}
else
{
string destPath = Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath);
File.Copy(filePath, Path.Combine(destPath, filename), true);
return true;
}
}
else
{
return false;
}
}
Приложение перезапускается и распознает его.
if (GetLicenceFile())
{
App.Current.Shutdown();
System.Windows.Forms.Application.Restart();
}
В режиме отладки этот файл копируется правильно и отображается впапка «C: \ Program Files (x86) \ AppName».Если я скопирую папку выпуска в «C: \ Program Files (x86) ..», она тоже будет работать нормально.
Приложение устанавливается мастером установки, при запуске приложения запрашивает лицензию ипосле импорта распознает и запускает, все работает нормально.Что меня спрашивает, так это то, что файл лицензии (License.xml) не виден в папке установки («C: \ Program Files (x86) \ AppName»), но он находит его правильно.Я помещаю снифферы, чтобы смотреть так:
File.AppendAllText(@"G:\Sniffers\path.txt", destPath + " : Licence path\n");
Если я удаляю приложение из панели управления, «C: \ Program Files (x86) \ AppName» полностью исчезает, но при следующей установке приложение запускаетсяпутем нахождения лицензии, а файл, который должен находиться в «C: \ Program Files (x86) \ AppName», должен быть удален при удалении.
Мы можем подумать, что «License.xml»копирование в другом месте.
Я не понимаю, почему я не могу найти этот файл с помощью мастера установки, даже поиск Windows Explorer не находит его даже с параметрами скрытого файла.
Идея?