c# - 安装后启动应用程序时,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 时不会发生)。
解决方案
推荐阅读
- mockito - 使用 Mockito 在 testmethod 中调用其他方法时出现 NullPointerException
- r - 无法安装 R - 无法纠正问题,您持有损坏的软件包
- javascript - 在 javascript 中为几个属性交换对象值
- python - 无法加载 Google Colab
- sql - SQL窗口函数通过语法错误进行分区
- azure - 更改同一单元格中的魔术标签 - Azure Databricks
- javascript - 如何在 vue.js 中的 href 处调用函数?
- ant - 从目标调用“macrodef”两次时,Ant“exec”标记输出属性值不改变
- javascript - JavaScript 登录控制器文件中的语法错误
- parsing - 避免 Clojure 中的递归堆栈溢出