我正在开发具有许可证管理的wpf c#应用程序。 当客户端获得许可证时,应用程序允许他使用“ OpenFileDialog”将其导入,该许可证文件是XML(License.xml)。导入此文件时,它将在“ ExecutablePath”中复制
class PersonForm(forms.ModelForm):
class Meta:
model = Person
fields = ["is_adult"]
widgets = {
'is_adult': forms.Select(attrs={'class': 'form-control'}),
}
labels= {
'is_adult': 'Is an adult?',
}
应用程序重新启动并识别出来。
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;
}
}
在调试模式下,此文件已正确复制,并且在“ C:\ Program Files(x86)\ AppName”文件夹中可见。如果我将发布文件夹复制到“ C:\ Program Files(x86)..”中,它也可以正常工作。
应用程序是由安装向导安装的,当应用程序启动时,它会申领许可证,并且在导入后,它会识别并启动,一切正常。 我在问的是许可证文件(License.xml)在安装文件夹('C:\ Program Files(x86)\ AppName')中不可见,但可以正确找到它。我把嗅探器这样看:
if (GetLicenceFile())
{
App.Current.Shutdown();
System.Windows.Forms.Application.Restart();
}
如果我从“控制面板”中卸载了该应用程序,则“ C:\ Program Files(x86)\ AppName”会完全消失,但是在下一次安装时,该应用程序将通过查找许可证启动,而该文件应该位于卸载时应该删除“ C:\ Program Files(x86)\ AppName”。
我们可能认为'License.xml'正在复制到其他地方。
我不明白为什么我无法使用“向导安装”找到该文件,即使使用隐藏文件选项,即使Windows资源管理器搜索也找不到该文件。
一个主意?