Visual Studio 2013 devenv 在 Windows 10 上未登录时无法构建项目
Visual Studio 2013 devenv fails to build project when not signed in on Windows 10
我有一个项目,我在 Windows 10 机器上的 zsh 中使用以下命令构建:
devenv $sln -project $project -rebuild "Release|x64"
如果我 运行 在终端本地使用它,它总是有效。然而,我通过任务调度程序 运行 宁它,有时通过 (cygwin) ssh。它仍然有效,但前提是我实际在本地或通过远程桌面会话登录到计算机。
如果用户注销时命令是 运行,我会看到以下消息:
Microsoft Visual Studio has detected a configuration issue. To correct
this, please restart as Administrator. For more information please
visit: http://go.microsoft.com/fwlink/?LinkId=320596
使用 ssh 的示例。
- 我登录物理机
- 我通过 ssh 进入所述机器
- 运行 命令。工作正常。
- 在物理机上注销
- 运行 命令在同一个 ssh 会话中。失败。
当我说"physical machine"时,我指的是命令所在的主机运行。
我有一台最新的 Windows 10 Professional 机器和最新的 Visual Studio 2013。
如果命令是 运行 通过 windows 任务调度程序(设置为在未以最高权限登录时工作),同时用户已注销,它也会失败。
将 devenv 设置为始终以管理员身份打开(使用我在 S.O. 上看到的所有方法)没有帮助。
禁用 UAC 没有帮助。
我会选择让机器一直保持登录状态,但是在远程桌面会话之后也会出现问题:- 如果我远程桌面进入那台机器,命令会继续工作,而我有远程会话打开(甚至通过 ssh 和任务调度程序),但是一旦我断开 rdp 会话,它就会停止工作。
编辑: 在执行时加载正确的用户配置文件并且 devenv activity 日志显示没有错误或警告。日志仅显示 devenv 在 Client rights determined
.
后退出
编辑: 我已经测试了 解决方案,它似乎适用于我使用以下解决方案构建的所有项目:
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 会话结束时重新启动,确保我始终有一个交互式会话,这肯定比我当前的解决方法要好。
确保您已配置此选项
如果您使用 msbuild 而不是 devenv,那么它将起作用
msbuild $sln /t:Rebuild /p:Configuration=Release;Platform=x64
任务计划程序使用 non-interactive 会话登录用户。您的 SSH 会话可能也是如此。这意味着分配的堆大小和可分配内存大小小于交互式登录。您可能 运行 遇到内存限制。
增加分配的堆大小 (see also this question) 或使用服务帐户 运行 编译作业。
这不是答案,但我在 Visual Studio 2015 实际尝试构建 UWP 项目时遇到了类似的问题:
Windows UWP build on Windows 10 machine with remote ssh login and cmake
登录后,一切正常,但使用 ssh 时编译器检查已经失败。
我有一个项目,我在 Windows 10 机器上的 zsh 中使用以下命令构建:
devenv $sln -project $project -rebuild "Release|x64"
如果我 运行 在终端本地使用它,它总是有效。然而,我通过任务调度程序 运行 宁它,有时通过 (cygwin) ssh。它仍然有效,但前提是我实际在本地或通过远程桌面会话登录到计算机。
如果用户注销时命令是 运行,我会看到以下消息:
Microsoft Visual Studio has detected a configuration issue. To correct this, please restart as Administrator. For more information please visit: http://go.microsoft.com/fwlink/?LinkId=320596
使用 ssh 的示例。
- 我登录物理机
- 我通过 ssh 进入所述机器
- 运行 命令。工作正常。
- 在物理机上注销
- 运行 命令在同一个 ssh 会话中。失败。
当我说"physical machine"时,我指的是命令所在的主机运行。
我有一台最新的 Windows 10 Professional 机器和最新的 Visual Studio 2013。
如果命令是 运行 通过 windows 任务调度程序(设置为在未以最高权限登录时工作),同时用户已注销,它也会失败。
将 devenv 设置为始终以管理员身份打开(使用我在 S.O. 上看到的所有方法)没有帮助。 禁用 UAC 没有帮助。
我会选择让机器一直保持登录状态,但是在远程桌面会话之后也会出现问题:- 如果我远程桌面进入那台机器,命令会继续工作,而我有远程会话打开(甚至通过 ssh 和任务调度程序),但是一旦我断开 rdp 会话,它就会停止工作。
编辑: 在执行时加载正确的用户配置文件并且 devenv activity 日志显示没有错误或警告。日志仅显示 devenv 在 Client rights determined
.
编辑: 我已经测试了
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 会话结束时重新启动,确保我始终有一个交互式会话,这肯定比我当前的解决方法要好。
确保您已配置此选项
如果您使用 msbuild 而不是 devenv,那么它将起作用
msbuild $sln /t:Rebuild /p:Configuration=Release;Platform=x64
任务计划程序使用 non-interactive 会话登录用户。您的 SSH 会话可能也是如此。这意味着分配的堆大小和可分配内存大小小于交互式登录。您可能 运行 遇到内存限制。
增加分配的堆大小 (see also this question) 或使用服务帐户 运行 编译作业。
这不是答案,但我在 Visual Studio 2015 实际尝试构建 UWP 项目时遇到了类似的问题:
Windows UWP build on Windows 10 machine with remote ssh login and cmake
登录后,一切正常,但使用 ssh 时编译器检查已经失败。