.net 从安装程序中获取制造商名称

.net 从安装程序中获取制造商名称,.net,installation,app-data,.net,Installation,App Data,在.NET中,创建安装项目时,应用程序文件存储在与以下类似的路径中: C:\ProgramFiles\[制造商]\[产品名称] 我正在公共应用程序数据中生成一个文件夹,这样我就可以在Win 7上读/写而无需管理员权限,因此我还在以下路径生成了一个文件夹: C:\ProgramData\[制造商]\[产品名称] 在代码中获取此路径以便读取/写入此文件夹的最佳方法是什么 我可以将制造商名称放在一个常量字符串中,并保持同步。或者我可以将其添加到其中一个项目的程序集清单中。或者我可以在安装过程中尝试将其

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

C:\ProgramFiles\[制造商]\[产品名称]

我正在公共应用程序数据中生成一个文件夹,这样我就可以在Win 7上读/写而无需管理员权限,因此我还在以下路径生成了一个文件夹:

C:\ProgramData\[制造商]\[产品名称]

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

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


有什么建议吗?

您可能需要查看安装程序实例的路径,以存储路径,然后在中找到它

您需要将该值设置为适当的路径(如
/TargetDir=“[TargetDir]”“
,或任何其他可用且需要的此类变量)

然后,在代码中,根据需要,从
上下文
参数
属性中获取路径,如上所述:

var path Context.Parameters.Item("TargetDir")

您可能希望查看安装程序实例的路径,以存储路径,然后在中找到它

您需要将该值设置为适当的路径(如
/TargetDir=“[TargetDir]”“
,或任何其他可用且需要的此类变量)

然后,在代码中,根据需要,从
上下文
参数
属性中获取路径,如上所述:

var path Context.Parameters.Item("TargetDir")

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

我会在配置文件中保存制造商和产品名称,或者在代码中保存硬编码常量。你也可以做一些反思,从集合中查找它,但在我看来,这太过分了

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


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

我认为除了创建目录之外,我不会在安装程序中执行任何操作。让应用程序在运行时管理对目录的访问

我会在配置文件中保存制造商和产品名称,或者在代码中保存硬编码常量。你也可以做一些反思,从集合中查找它,但在我看来,这太过分了

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


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

您对此有什么问题?我希望避免硬编码应用程序数据的路径。如果我使用environment.GetFolderPath(environment.SpecialFolder.CommonApplicationData)我可以获得C:\ProgramData或类似程序的操作系统特定路径,但我不希望硬编码制造商名称。如何获取制造商名称?您将其指定为安装项目的属性。您实际遇到了什么问题?我希望避免硬编码应用程序数据的路径。如果使用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)我可以获取C:\ProgramData或类似文件的操作系统特定路径,但我不希望硬编码制造商名称。如何获取制造商名称?将其指定为安装项目的属性。这将在自定义安装程序操作中工作,但是我需要从安装的应用程序本身获取这些数据。@Josh G:那么,在这种情况下,要么在某个地方对它们进行硬编码,要么根据执行程序集的物理位置执行一些字符串操作,以获取所需的数据,以及可能需要的任何其他部分,如扩展环境变量。但请更新您的问题,因为现在它暗示您希望在安装时通过安装程序执行此操作。这将在自定义安装程序操作中起作用,但我需要从安装的应用程序本身获取此数据。@Josh G:那么,在这种情况下,要么在某个地方硬编码,或者根据执行程序集的物理位置执行一些字符串操作,以获取所需的数据,以及可能需要的任何其他部分,如扩展环境变量。但请更新您的问题,因为现在它暗示您希望在安装时通过安装程序执行此操作。