在.NET中,创建安装项目时,应用程序文件存储在类似于以下的路径中:
C:\Program Files\[Manufacturer]\[Product Name]
我在公共应用程序数据中生成一个文件夹,所以我可以在没有管理员权限的情况下在Win 7上读/写,所以我也在这条路径上生成了一个文件夹:
C:\ProgramData\[Manufacturer]\[Product Name]
在代码中获取此路径的最佳方法是什么,以便我可以读取/写入此文件夹?
我可以将制造商名称放在一个常量字符串中并保持同步。或者我可以将其添加到其中一个项目的程序集清单中。或者我可以尝试在安装过程中将其保存到文件中?
有什么建议吗?
答案 0 :(得分:1)
除了创建目录之外,我认为我不会在设置中做任何事情。让应用程序管理在运行时到达目录。
我会将您的制造商和产品名称保存在配置文件中或代码中的硬编码常量中。你也可以做一些反思,从组装中查找它,但这在我的脑海中是过度的。
对于ProgramData目录,使用%ALLUSERSPROFILE%环境变量来获取位置。这样它可以适用于所有版本的Windows。
然后连接环境变量和制造商/产品名称以构建整个目录。
答案 1 :(得分:0)
您可能希望查看安装程序实例的Context
,以存储路径,然后在Parameters
内找到它。
您需要将值CustomActionData
设置为适当的路径(例如/TargetDir="[TARGETDIR]"
),或任何其他可用且需要的变量。)
然后,在代码中,根据需要,抓住Parameters
的{{1}}属性的路径,如上所述:
Context