我想知道Windows generate folder
如何安装ClickOnce application
。
在Startmenu中是文件的“快捷方式”,在“startrek”文件夹中放置的内容如下:
C:\ Users \用户名\应用程序数据\本地\应用\ 2.0 \ GT ?? 4KXX.PRJ \ EGV ??? 1G.??C\prin..tion_7???5a2?????74b6_0000。 0002_1dae ???? 89111c35
这些文件夹名称是什么意思?
例如:
如果我有一些settings.txt
文件,我希望该用户可以更改应用程序的某些参数。有没有办法知道,它将安装在哪里,文件在哪里? (用户可在此处找到此settings.txt文件)。
我知道我可以在C:\中创建文件,启动应用程序后,我将在“强”路径中修改文件。但我真的不喜欢太多的文件,文件夹,无论在C:\中,我更喜欢将设置文件放在同一个文件夹中,如应用程序。但是使用ClickOnce安装很难 - 不可能 - 找到该文件。
似乎“startrek”就像是项目的哈希。
所以我想知道该文件夹是什么意思,以及它是否是项目的一些哈希或者是什么。
答案 0 :(得分:5)
要查找包含可执行文件的文件夹,可以使用Assembly.Location属性。
例如:
string exeFolder = System.Reflection.Assembly.GetExecutingAssembly().Location;
但是,如果要存储ClickOnce应用程序的设置,则不应将文件写入.exe的文件夹。
相反,您应该使用Microsoft's Application Settings support。以任何其他方式做这将是一个额外的麻烦,微软的支持是非常好的。它需要半个小时来阅读文档,但它是最好的事情,恕我直言。
(我假设您只需将设置存储在本地PC上供同一用户以后使用。如果您希望设置跟随用户(即漫游设置),则无法使用微软的支持。)
如果您要将更复杂的设置存储在直接创建的文件中,则应考虑使用JRoughan提及的答案中提到的隔离存储。
答案 1 :(得分:4)
从ClickOnce应用程序内部,您可以找到使用
存储文件的默认目录ApplicationDeployment.CurrentDeployment.DataDirectory
或者您可以使用isolated storage并选择是为每个应用程序还是按用户保存。
我认为不可能从应用程序本身外部确定这些文件夹。如果您需要一个已知位置,则必须对其进行硬编码。
<强>更新强>
我也不相信可以推断出应用程序的安装目录是什么。即使可能,使用应用程序的更新也不会在同一位置,这是不明智的。
答案 2 :(得分:1)
如果您有通过程序修改的数据,如果您不将其保留在ClickOnce程序目录中,您会更高兴。当有更新时,你可能会完全搞砸。查看this article有关如何处理数据的信息,以确保数据安全并能够找到它。它讨论了将它放在LocalApplicationData中,但是如果你希望你的用户能够找到并编辑它,只需将它放在MyDocuments / yourappname / settings或类似的东西中。
我不会使用独立存储;据报道存在问题和ClickOnce。