我一直在挖掘Google试图找到合适的方式来确定用户从安装向导中选择的安装路径。Visual Studio安装项目:获取目标目录
基本上我遇到了一个问题,我的服务无法在自己的目录中创建文件,因为它缺少适当的权限。我假设解决这个问题的正确方法是确保服务使用的任何帐户在其文件夹上都有适当的文件权限。
但在我甚至可以解决如何通过.Net设置权限之前,我需要知道安装文件夹。我正在使用一个安装项目,它有一个安装程序类,其中还包含一个ServiceInstaller
控件。两者都有Context
属性,因此我一直在检查AfterInstall事件触发每个相应安装程序时可用的参数。我想起初我会看到TargetDir
属性集,但事实并非如此。但是,我看到AssemblyPath
已设置并指向相应文件夹的可执行文件。
基本上我只是想确保,这是适当的方法,我应该使用:
private void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e)
{
string InstallPath = System.IO.Path.GetDirectoryName(serviceInstaller1.Context.Parameters["AssemblyPath"]);;
}
您还必须在反斜杠“\”后添加额外的空格。否则,在安装或卸载时可能会遇到FileNotFoundException异常。见[这里](http://stackoverflow.com/questions/4516256/how-do-i-fix-setup-project-with-custom-action-file-not-found-exception/4522825#4522825)或[这里](http://stackoverflow.com/questions/8491095/error-1001-using-custom-installer-with-visual-studio-2008)。 – 2013-08-11 08:24:20
你在哪里使用这一点文字?你的解释不是很清楚,对不起。作为项目的命令行参数?代码中的某处?现在MSDN的链接也被破坏了。感谢微软! :-) – 2014-05-15 22:54:35
哦,我明白了。我在另一篇文章中找到了答案: “在您的部署项目中,添加一个用于安装和提交的自定义操作。对于安装自定义操作的CustomActionData属性,输入/ Targetdir =”[TARGETDIR] \“” – 2014-05-15 22:56:33