1

在 .NET 中,创建安装项目时,应用程序文件存储在类似于以下路径的路径中:

C:\Program Files\[Manufacturer]\[Product Name]

我在通用应用程序数据中生成一个文件夹,这样我就可以在没有管理员权限的情况下在 Win 7 上读/写,所以我还在这个路径中生成了一个文件夹:

C:\ProgramData\[Manufacturer]\[Product Name]

在代码中获取此路径以便我可以读取/写入此文件夹的最佳方法是什么?

我可以将制造商名称放在一个常量字符串中并保持同步。或者我可以将它添加到其中一个项目的程序集清单中。或者我可以尝试在设置过程中将其保存到文件中?

有什么建议么?

4

2 回答 2

1

除了创建目录之外,我认为我不会在设置中做任何事情。让应用程序在运行时管理对目录的访问。

我会将您的制造商和产品名称保存在配置文件中或代码中的硬编码常量中。您也可以进行某种反思以从装配中查找它,但在我看来这太过分了。

对于 ProgramData 目录,使用 %ALLUSERSPROFILE% 环境变量来获取位置。这样它就可以在所有版本的 Windows 上运行。

然后连接环境变量和制造商/产品名称来构建整个目录。

于 2011-06-20T13:50:59.743 回答
0

您可能希望查看Context安装程序实例的 ,以存储路径,然后在Parameters.

您需要将该值设置CustomActionData为适当的路径(例如/TargetDir="[TARGETDIR]",或任何其他可用和所需的此类变量。)

然后,在代码中,根据需要,从 的Parameters属性中获取路径Context,如上所述:

var path Context.Parameters.Item("TargetDir")
于 2011-06-20T13:48:51.787 回答