Visual Studio安装项目:获取目标目录

Spe*_*ort 9 installer windows-services visual-studio-2008

我一直在挖掘谷歌,试图找到合适的方法来确定用户从安装向导中选择的安装路径.

基本上我遇到了一个问题,我的服务无法在它自己的目录中创建文件,因为它缺少适当的权限.我假设解决此问题的正确方法是确保服务所使用的任何帐户都在其文件夹上获得适当的文件权限.

但在我甚至可以解决如何通过.Net设置权限之前,我需要知道安装文件夹.我正在使用一个安装项目,它有一个包含ServiceInstaller控件的Installer类.两者都有Context属性所以我一直在检查为每个相应的安装程序触发AfterInstall事件时可用的参数.我一开始以为我会看到TargetDir属性集,但事实并非如此.然而,我看到AssemblyPath设置并指向相应文件夹的可执行文件.

基本上我只是想确保这是我应该使用的适当方法:

private void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e)
{
    string InstallPath = System.IO.Path.GetDirectoryName(serviceInstaller1.Context.Parameters["AssemblyPath"]);;
}
Run Code Online (Sandbox Code Playgroud)

YWE*_*YWE 12

我发现Berg给出的解决方案对我有用,除了将此值用于CustomActionData属性:

/TargetDir="[TARGETDIR]\"
Run Code Online (Sandbox Code Playgroud)

请注意添加反斜杠.在MSDN上查看此文章.