的Visual Studio 2013 devenv的失败建设项目时,在Windows 10
没有登录我有我的zsh使用以下命令建立一个Windows 10机器上的项目:的Visual Studio 2013 devenv的失败建设项目时,在Windows 10
devenv $sln -project $project -rebuild "Release|x64"
如果我在本地运行终端,它始终有效。然而,我通过任务调度程序运行它,有时通过(cygwin)ssh运行它。它仍然有效,但只有当我实际登录到本地机器或远程桌面会话。
如果当用户退出运行的命令,我看到以下消息:
微软的Visual Studio已经检测到配置问题。要纠正 这个问题,请以管理员身份重新启动。欲了解更多信息请致电 访问:http://go.microsoft.com/fwlink/?LinkId=320596
使用ssh的示例。
- 我登录到物理机
- 我ssh到该机械
- 运行命令。工作正常。
- 在物理机器上注销
- 在同一ssh会话中运行命令。失败。
当我说“物理机器”时,我指的是运行命令的主机。
我有一个最新的Windows 10专业机和最新的Visual Studio 2013年
如果命令是通过Windows任务调度程序运行它也失败(集时不使用最高权限登录到工作) ,而用户登出。
将devenv设置为始终以管理员身份打开(使用我在S.O.上看到的所有方法)无济于事。 禁用UAC不起作用。
我会选择让机器始终保持登录状态,但问题也出现在远程桌面会话之后: - 如果我将远程桌面连接到该机器,则该命令在我有远程会话时继续工作打开(即使通过ssh和任务调度程序),但只要断开rdp会话就会停止工作。
编辑:正确的用户配置文件在执行时加载,devenv活动日志显示没有错误或警告。日志仅仅显示devenv在Client rights determined
之后退出。
编辑:我测试过@Callan's msbuild
解决方案,它似乎对使用下述溶液中所有的项目工作中产生:
msbuild $sln /t:Rebuild /p:Configuration=Release;Platform=x64
而对单个项目进行了以下构建(Found here):
msbuild $sln /t:"$project:Rebuild" /p:Configuration=Release;Platform=x64 /p:BuildProjectReferences=false
这不完全是解决问题的方法,因为@SimonMourier指出,它们不是等价的。这是一种解决方法,幸运的是,它适用于我,虽然它可能无法适用于所有情况,但现在看起来似乎没有更好的解决方案。
这肯定比我目前的解决方法,使机器自动登录和锁定,然后告诉我的机器在RDP会话结束时重新启动,确保我总是有一个交互式会话。
如果使用devenv的MSBuild的的,而不是那么它会工作
msbuild $sln /t:Rebuild /p:Configuration=Release;Platform=x64
这将重建整个解决方案而不是项目。请参阅http://stackoverflow.com/questions/13915636/specify -project-file-of-a-solution-using-msbuild for the project line for project and http://stackoverflow.com/questions/12036112/msbuild-project-specific-targets-for-solution-does-not-work/12081931#12081931这是怎么工作的 –
我发现了,我假设与问题命令等价的东西就像 'msbuild $ sln/t:“$ project:Rebuild”/ p:Configuration = Release; Platform = x64' – Jools
.vdproj扩展?MSBuild无法建立这种设置p roject ...任何解决方案? – Gianpolo
我有那套。对不起,这就是我说的“windows任务计划程序(在未登录时设置工作”的意思,这也不是运行任务的问题,它运行,但命令失败,我通过ssh得到了相同的结果它似乎独立于任务调度程序,并与devenv(VS)或Windows 10问题有关 – Jools
任务调度记录用户在使用非交互式会话。您的SSH会话可能也是如此。这意味着分配的堆大小和可分配的内存大小要小于交互式登录。您可能会遇到内存限制。
要么增加分配的堆大小(see also this question)要么使用服务帐户来运行编译作业。
如果这是问题,难道你不希望它通过ssh或任务调度程序构建时一贯失败吗?令人费解的是,无论何时开始执行任务或ssh会话,只要用户在运行build命令的实例中登录,也永远无法通过ssh或任务计划程序进行构建。会话可以在交互式和非交互式之间动态切换吗? – Jools
如果您已经登录,则已经有一个交互式会话,任务调度程序或SSH可以使用该会话。他们当然不会注销您的用户帐户来启动非交互式会话。 – Simmetric
我测试了将堆大小增加到与交互式会话相同,但它并未改变此问题的行为。我相当确定我所看到的必须是特定于devenv在启动时所做的事情,因为这些项目是一个更大的编译工作的一部分,并且始终是唯一出错的地方。 – Jools
这不是一个答案,但我遇到了类似的问题上的Visual Studio 2015年实际上是试图建立一个UWP项目:
Windows UWP build on Windows 10 machine with remote ssh login and cmake
一次我登录,一切工作正常,但使用ssh在编译器检查时已经失败。
Visual Studio需要一个正确的用户配置文件来加载才能运行。可能与以下相关:https://support.microsoft.com/en-us/kb/2968540。另外,您是否检查了活动日志:https://blogs.msdn.microsoft.com/visualstudio/2010/02/24/troubleshooting-extensions-with-the-activity-log/ –
据我所知,正确的用户配置文件已加载。 “$ USERNAME”和“$ USERPROFILE”都按预期设置。我已经检查了日志,并且前42个条目对于失败和正在运行的版本是相同的。工作版本中的第43个条目是“输入函数CVsPackageInfo :: HrInstantiatePackage”,而在失败的构建中,程序似乎刚刚开始干净地退出“AppId已停止的注册表绕行”。第42条是'客户端权限确定:...' – Jools
是的,我很确定加载了正确的用户配置文件,因为这两个日志都报告从同一个用户目录读取“客户端权限令牌”。 – Jools