0

我有一个 asp.net 项目,并编写了一个网络安装程序。setup exe/msi 将该项目复制到安装用户选择的目录中,并为其创建一个应用程序。

如何获取我的 asp.net 应用程序安装到的路径(在安装程序中)?我想将我的 ASP.net 应用程序的物理路径写入注册表,因为 Windows 服务需要监视此 Web 项目的目录,并且它不能这样做,除非它知道 Web 项目的安装位置。

Webinstaller 项目是否会自动将此值写入注册表?

4

2 回答 2

1

可以:

右键单击安装项目,然后从上下文菜单中选择查看->注册表。
右键单击 HKEY_Local_Machine,添加一个新密钥,将其命名为 Software。
右键单击软件,添加一个新密钥,将其命名为“MyCompanyName”。
右键单击 MyCompanyName,从上下文菜单中选择 new->String,将其命名为安装文件夹。
左键单击安装文件夹键,并将属性值设置为 [TARGETDIR]
添加一个附加字符串键,将其命名为版本并将其值 [ProductVersion]

包括 []


在 x64 上,您将在
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\YourCompany]下的 regedit 中找到您的注册表项


但是以编程方式,您可以从普通项目和 Web 项目中正常读取它,使用:
My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\YourCompanyName", "Installation Folder", Nothing)

于 2009-12-16T11:49:44.997 回答
0

很不幸的是,不行; IIS 使用注册表以外的方式来存储其配置。

对于 IIS4、IIS5 和 IIS6,您需要查看 IIS 元数据库。这是您的 Windows 文件夹中的 XML 文件system32\inetsrv\Metabase.xml;它是 XML,因此您应该能够直接阅读它以找到所需的信息。

IIS7 不再使用元数据库;相反,有关 IIS 配置的托管 API 的详细信息,请参阅此处

因此,您可能会发现最好重新设计您的应用程序,以便在这些位置中的任何一个位置查找您需要的目录信息。

于 2009-12-15T14:59:06.763 回答