我可以使用与用于启动VisualStudio的用户名不同的用户名从调试文件夹启动appname.vshost.exe
吗?
以下内容appname.vshost.exe.config
。是否有用户名配置?我尝试搜索它,但找不到任何东西。
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
如果您尝试运行调试可执行文件您可以尝试 shift 右键单击并以其他用户身份运行。
还是要通过配置以其他用户身份运行?
我认为你不能在与用于启动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 ProjectsWcfServiceTestWcfServiceTestbinDebugWcfServiceTest.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;
}
}
}