是否可以在c#中获取Visual Studio帐户信息?

是否可以在c#中获取Visual Studio帐户信息?,c#,.net,visual-studio,C#,.net,Visual Studio,我想获取当前登录到VisualStudio的用户的电子邮件地址,当然是在调试模式下。就像使用Environment.UserName获取windows帐户名一样 这可能吗?我决不会将VisualStudio用户名用于授权系统。VS用户的名称存储在一个简单的注册表项中,可以很容易地进行操作 您可以使用以下代码检索最多14个Visual Studio版本(Visual Studio 2015)的用户名/帐户信息。Visual Studio 2017具有不同的注册表路径。阅读更多关于它的信息 cons

我想获取当前登录到VisualStudio的用户的电子邮件地址,当然是在调试模式下。就像使用Environment.UserName获取windows帐户名一样


这可能吗?

我决不会将VisualStudio用户名用于授权系统。VS用户的名称存储在一个简单的注册表项中,可以很容易地进行操作

您可以使用以下代码检索最多14个Visual Studio版本(Visual Studio 2015)的用户名/帐户信息。Visual Studio 2017具有不同的注册表路径。阅读更多关于它的信息

const byte minVSVersion=11;//Visual Studio 2012
常量字节maxVSVersion=14;//Visual Studio 2015
静态列表getVSUsers()
{
var vsUsrs=新列表();
for(byte version=minVSVersion;version usr!=null).ToList();
}

遗憾的是,无法准确确定用户用于编译程序的VisualStudio版本。

为什么要这样做?从哪里开始?从VisualStudio扩展是合理的。从任何碰巧由VS调试的任意程序中——这将跨越从调试对象到调试器的进程边界,并可能导致死锁,除了潜在的滥用问题之外。
const byte minVSVersion=11; // Visual Studio 2012
const byte maxVSVersion=14; // Visual Studio 2015

static List<string> getVSUsers()
{
    var vsUsrs=new List<string>();
    for(byte version=minVSVersion; version<=maxVSVersion; version++)
        vsUsrs.Add((string)Registry.GetValue(
            @"HKEY_USERS\.DEFAULT\Software\Microsoft\VisualStudio\"+version+@".0_Config\Registration",
            "UserName", null));

    return vsUsrs.Where(usr => usr!=null).ToList();
}