我有一个安装项目(在Windows 7上运行),它在commit时启动自定义操作,启动刚安装的应用程序。在启动此应用程序期间,我有一个检查当前用户名称以执行某些身份验证的方法。从此自定义操作启动后,我将获得“NTAUTHORITY \ SYSTEM”而不是“DOMAIN \ USER”
更新 接受的答案中的这个链接解决了我的问题:
How can I customize an MSI in the Visual Studio setup/deployment project?
答案 0 :(得分:3)
您可能应该阅读USERNAME
MSI属性的值:
string username = Session.Property("USERNAME");
以上将在立即执行模式下工作;但是,在延迟模式下,您将明确地使用CustomActionData
属性将用户名传递给自定义操作。详情请见:
更新:如果您想在安装完成后启动已安装的应用程序,则可能更喜欢本文中介绍的方法:
Launching Your Application After Install using Visual Studio 2005
或使用Aaron Stebner的脚本修改您的MSI:
<强> How can I customize an MSI in the Visual Studio setup/deployment project? 强>
答案 1 :(得分:0)
以下代码是我在Installer类中用作自定义操作的代码。这将返回当前登录的用户,而不是“NTAUTHORITY \ SYSTEM”
IdentityReference identity = new System.Security.Principal.NTAccount(Environment.GetEnvironmentVariable("USERDOMAIN") + "\\" + Environment.GetEnvironmentVariable("USERNAME"))