Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检测项目的安装目录?_C#_Visual Studio_Installation - Fatal编程技术网

C# 如何检测项目的安装目录?

C# 如何检测项目的安装目录?,c#,visual-studio,installation,C#,Visual Studio,Installation,我有一个Visual studio C#项目,我有一个安装程序,可以将文件安装到用户指定的任何目录中。我还有另一个带有本地化语言资源的安装程序,我希望它安装在前面提到的目录中 有人能给我指出正确的方向吗?我想我必须对注册表项做些什么,但我不知道该怎么做 编辑:对于记录,我找到了以下页面:。我按照指示做了我想做的事 你走在正确的轨道上。您的第一个安装程序将把它的安装路径写入一个已知的注册表项。第二个安装程序将从该已知密钥读取路径,并将其DLL放在相应的子文件夹中。您的路径正确。您的第一个安装程序将

我有一个Visual studio C#项目,我有一个安装程序,可以将文件安装到用户指定的任何目录中。我还有另一个带有本地化语言资源的安装程序,我希望它安装在前面提到的目录中

有人能给我指出正确的方向吗?我想我必须对注册表项做些什么,但我不知道该怎么做


编辑:对于记录,我找到了以下页面:。我按照指示做了我想做的事

你走在正确的轨道上。您的第一个安装程序将把它的安装路径写入一个已知的注册表项。第二个安装程序将从该已知密钥读取路径,并将其DLL放在相应的子文件夹中。

您的路径正确。您的第一个安装程序将把它的安装路径写入一个已知的注册表项。第二个安装程序将从该已知项读取路径,并将其DLL放入相应的子文件夹。

通常,您将创建一个注册表子项和HKEY_LOCAL_MACHINE\SOFTWARE\的值,然后在第二个安装程序中读取该项以决定将其放在何处

类似于HKLM\SOFTWARE\MyApplication的内容

然后创建一个名为InstallPath的字符串值,并从第一个安装程序那里写入路径


根据您所做的工作,您可能希望了解如何使用一个MSI安装多个组件。

通常,您会创建注册表子项和HKEY_LOCAL_MACHINE\SOFTWARE\的值,然后在第二个安装程序中重新读取该项以决定将其放在何处

类似于HKLM\SOFTWARE\MyApplication的内容

然后创建一个名为InstallPath的字符串值,并从第一个安装程序那里写入路径


根据您所做的工作,您可能希望了解如何使用一个MSI安装多个组件。

以下是一种方法:

Assembly a = Assembly.GetExecutingAssembly();

string folder = System.IO.Path.GetDirectoryName(a.CodeBase);

这里有一种方法:

Assembly a = Assembly.GetExecutingAssembly();

string folder = System.IO.Path.GetDirectoryName(a.CodeBase);

好的,我试试看。问题是我对安装人员了解不多。我只有一个.vdproj文件,我不知道如何把代码放进去。对不起,如果这听起来很愚蠢,但你能告诉我如何添加代码到安装程序吗?好的,我会试试。问题是我对安装人员了解不多。我只有一个.vdproj文件,我不知道如何把代码放进去。如果这听起来很愚蠢,很抱歉,但是您能告诉我如何向安装程序添加代码吗?