![]() |
1
10
|
![]() |
2
2
如果要使用COM对象,请使用Reg-Free COM并将COM对象包含在程序中。 |
![]() |
3
2
你应该始终控制你的写作。应用程序应该在启动时加载到RAM中,然后在RAM中分配过去的内存,因此不会向闪存驱动器写入任何内容。 对于可移植应用程序来说,最重要的是基本上不需要为应用程序安装。您不希望特别依赖注册表值,因为您的应用程序不会“安装”在其他计算机上。 您可能会考虑的可移植应用程序的一个问题是数据持久性。通常,您会写入用户的应用程序数据文件夹以保存数据。如果是这种情况,则保存的任何数据都将仅应用于该计算机上的用户。如果您需要一些本地应用程序数据,您可能希望为您的设置创建一个已搜索的XML文件,并将其存储在应用程序的目录中。这种文件写入可能是您唯一需要担心的写入操作。 对于.NET可移植性问题,您还可以在C++中编写一个小的入门程序,它检查计算机是否安装了.NET。.NET具有注册表值,您可以检查以查看安装的版本,因此如果安装了.NET,请运行应用程序,否则将显示一条消息,说明需要首先安装.NET。 编辑: 我想补充一下,我在C 3.0中使用XAML为超声波机器进行应用程序开发。我编写的应用程序在USB闪存驱动器上工作得很好,而所有用户设置都存储在本地AppData基础上,因此不会向USB写入任何内容。虽然可以通过.exe安装程序安装应用程序,但安装程序不会写入应用程序所依赖的任何注册表值。 |
![]() |
4
0
我对1或3没有真正的答案。但是对于2,.NET CLR不应该写入应用程序的“安装”文件夹(即闪存驱动器),除非您的代码专门告诉它,或者正在使用和修改与应用程序一起使用的基于文件的设置(ini、xml等)。 如果你不只是为了个人目的而写东西,那么第一个问题就更重要了。显然,在拇指驱动器上托管完整CLR的可移植副本是不可能的。但是有一些工具可以扫描程序集的依赖项并将它们打包成独立的.exe,这样就不必在目标系统上安装clr。 |
![]() |
5
0
我实际上对此没有任何经验,所以最好还是用一小撮盐来表达我的看法。但这是我的看法: 你不需要做任何特别的事情。 对于一个应用程序开发人员来说,写驱动器的方式和时间并不是真正的考虑因素,这是操作系统更好地控制的事情。我知道Windows缓存写入USB驱动器,所以我相信它能处理这一点。 唯一需要考虑的是,您的应用程序将不会被安装。因此,您需要确保将其设计为在部署到的目录中完全独立地运行。您也可以选择对用户主目录进行一些写入,但这需要通过适当的环境变量来完成。 我会写信,看看操作系统是否能处理闪存驱动器的特殊问题。 |
![]() |
sid_com · 为条件OO模块加载编写包装器模块的正确方法是什么? 10 年前 |
![]() |
tssch · 获取用户名的可移植方式 11 年前 |
![]() |
Prof. Falken · 如何编写(可移植的)反向网络字节顺序? 11 年前 |