以不同的用户身份运行vshost.exe

时间:2017-05-16 11:12:33

标签: c# visual-studio vshost.exe

我可以使用与用于启动VisualStudio的用户名不同的用户名从调试文件夹启动y吗?

y=101有以下内容。是否有用户名配置?我试过搜索但找不到任何东西。

appname.vshost.exe

2 个答案:

答案 0 :(得分:1)

如果您正在尝试运行debugg可执行文件 您可以尝试右键单击并以不同用户身份运行。

或者您想通过配置以不同的用户身份运行吗?

答案 1 :(得分:0)

我认为您不能在用于启动Visual Studio的用户之下启动vshost.exe。所以现在我在另一个控制台应用程序的不同用户下启动主控制台应用程序并附加调试器并且它可以工作。

如果它对任何人有帮助,我已将我的代码复制到下面。

using System;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security;
using EnvDTE80;
using Process = System.Diagnostics.Process;

namespace StartService
{
    class Program
    {
        static void Main(string[] args)
        {
            var secure = new SecureString();
            foreach (var c in "password-from-config")
            {
                secure.AppendChar(c);
            }

            Process process = null;

            try
            {
                process = Process.Start(@"C:\Test Projects\WcfServiceTest\WcfServiceTest\bin\Debug\WcfServiceTest.exe",
                    "TestUser", secure, "DomainName");

                Attach(GetCurrent());

                Console.ReadKey();
            }
            finally
            {
                if (process != null && !process.HasExited)
                {
                    process.CloseMainWindow();
                    process.Close();
                }    
            }
        }

        public static void Attach(DTE2 dte)
        {
            var processes = dte.Debugger.LocalProcesses;
            foreach (var proc in processes.Cast<EnvDTE.Process>().Where(proc => proc.Name.IndexOf("WcfServiceTest.exe") != -1))
                proc.Attach();
        }

        internal static DTE2 GetCurrent()
        {
            var dte2 = (DTE2)Marshal.GetActiveObject("VisualStudio.DTE.12.0"); // Specific to VS2013

            return dte2;
        }
    }
}