Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)在安装项目中返回错误的值

时间:2013-11-07 07:50:36

标签: c# setup-project deployment-project

我使用VS2010创建安装项目,我有一个自定义操作,应该在我的文档文件夹中创建一个文件。

但是Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)会给我一个不正确的值。 我的文档文件夹被重定向到 D:驱动器中的另一个文件夹。

当我测试自定义操作时,我尝试使用此方法返回一个空值,但它可以在控制台应用程序中返回正确的值,任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

为每个人安装的VS安装项目中的自定义操作使用系统帐户运行,而不是安装用户的帐户。

如果要在该Documents文件夹中创建文件,请将PersonalFolder标准Windows Installer属性传递到自定义操作中。

http://msdn.microsoft.com/en-us/library/aa370905(v=vs.85).aspx#system_folder_properties

如果是安装程序类调用,我认为你将它传递给表单中的一个调用参数:

/ mydocs = [PersonalFolder]

然后使用字典键[arg]来获得实际解析的值(这就是[]的含义)。