首页 > 解决方案 > 安装后启动应用程序时,UserPrincipal.Current.EmailAddress 不起作用

问题描述

为了让我的控制台应用程序在安装后启动,我在我的项目中添加了一个安装程序类。

public override void Commit(IDictionary savedState)
{
     base.Commit(savedState);
     System.Diagnostics.Process.Start(System.IO.Path.GetDirectoryName(this.Context.Parameters["AssemblyPath"]) + @"\MyAppName.exe");
}

我已将自定义操作添加到我的(安装和提交下SetupProject的主输出快捷方式)以在安装后执行启动,它确实启动了应用程序。MyApp.exe

但是,当应用程序在安装后启动并Main()运行时,UserPrincipal.Current.EmailAddress;我收到此错误:

无法将“System.DirectoryServices.AccountManagement.GroupPrincipal”类型的对象转换为“System.DirectoryServices.AccountManagement.UserPrincipal”类型。

(顺便说一下,这是在我的工作场所网络上)。

现在,如果我转到应用程序文件夹并运行 .exe.... 它可以工作。

所以我的问题是:导致这种情况发生的“安装后运行”方法是什么,我该如何解决?

我几乎尝试了互联网的每个角落,但无法理解这一点,而且许多其他解决方案都没有奏效。

我已经尝试过这个 SO 帖子中的解决方案,但没有运气。

我尝试从 Outlook 获取电子邮件地址,但我收到了不同的错误(在调试期间或单击 .exe 时不会发生)。

标签: c#.netvisual-studio

解决方案


推荐阅读