使用 FileOptions.DeleteOnClose 创建文件,写入它并看到它在之后被删除
Create file with FileOptions.DeleteOnClose, write to it and see it getting deleted after
我正在尝试制作一个只有一个 exe 文件的程序。这是一个要求。
但我还必须为那个程序实现帮助,这样用户才能知道做什么。我决定制作一个 chm 文件并使用 HelpProvider。最初我以为我可以嵌入 chm 文件并告诉 HelpProvider 从 resources.resx.
打开它
嗯,那没用。
因为我不知道有任何其他选项可以显示帮助,无需向程序添加更多文件或使用在线托管或其他任何方式,我决定将嵌入式 chm 写入磁盘(当用户打开时它)并在之后删除它(这是在我未能在内存中想出一种方法之后)。
问题是创建带有 FileOptions.DeleteOnClose
标志的文件并写入它。如果我
File.Create(path, 100, FileOptions.DeleteOnClose);
File.WriteAllBytes(path, mychm);
文件被Create
方法锁定。如果我将 using
放在 Create
方法上,文件在写入之前会被删除。
好的,所以代码需要是单个 .exe。很公平。
您是否考虑过让您的应用程序成为实际显示帮助的应用程序?我的意思是,我不知道对帮助的实际要求是什么(可点击索引?Table 的内容?工具提示?等)- 但取决于您需要使它变得多么用户友好,您总是可以简单地添加带有 WebBrowser 对象的 Windows 表单,然后将 HTML 内容直接注入 WebBrowser(通过 myWebBrowserControl.Document)。
我的意思是,这无论如何都不是最佳选择。但这是 "Help-Enabled application with only a single .exe output" 要求的快速解决方案。
编辑:附加想法。如果您编写此文件供企业内部使用,您可以将帮助文件放在公司网络上的可访问位置 - 并将您的应用 link 放到远程位置。另一方面,如果您正在开发一个用户会下载的应用程序,您可以开发在线帮助并将该应用程序 link 提供给您 URL.
的帮助
我正在尝试制作一个只有一个 exe 文件的程序。这是一个要求。
但我还必须为那个程序实现帮助,这样用户才能知道做什么。我决定制作一个 chm 文件并使用 HelpProvider。最初我以为我可以嵌入 chm 文件并告诉 HelpProvider 从 resources.resx.
打开它嗯,那没用。
因为我不知道有任何其他选项可以显示帮助,无需向程序添加更多文件或使用在线托管或其他任何方式,我决定将嵌入式 chm 写入磁盘(当用户打开时它)并在之后删除它(这是在我未能在内存中想出一种方法之后)。
问题是创建带有 FileOptions.DeleteOnClose
标志的文件并写入它。如果我
File.Create(path, 100, FileOptions.DeleteOnClose);
File.WriteAllBytes(path, mychm);
文件被Create
方法锁定。如果我将 using
放在 Create
方法上,文件在写入之前会被删除。
好的,所以代码需要是单个 .exe。很公平。
您是否考虑过让您的应用程序成为实际显示帮助的应用程序?我的意思是,我不知道对帮助的实际要求是什么(可点击索引?Table 的内容?工具提示?等)- 但取决于您需要使它变得多么用户友好,您总是可以简单地添加带有 WebBrowser 对象的 Windows 表单,然后将 HTML 内容直接注入 WebBrowser(通过 myWebBrowserControl.Document)。
我的意思是,这无论如何都不是最佳选择。但这是 "Help-Enabled application with only a single .exe output" 要求的快速解决方案。
编辑:附加想法。如果您编写此文件供企业内部使用,您可以将帮助文件放在公司网络上的可访问位置 - 并将您的应用 link 放到远程位置。另一方面,如果您正在开发一个用户会下载的应用程序,您可以开发在线帮助并将该应用程序 link 提供给您 URL.
的帮助