我有一个项目,我在Windows 10机器上的zsh中使用以下命令构建:
devenv $sln -project $project -rebuild "Release|x64"
如果我在终端本地运行它,它总是有效.然而,我通过任务调度程序运行它,有时通过(cygwin)ssh运行它.它仍然有效,但前提是我实际上是在本地登录本机或使用远程桌面会话.
如果在用户注销时运行该命令,我会看到以下消息:
Microsoft Visual Studio检测到配置问题.要更正此问题,请以管理员身份重新启动 有关详细信息,请访问:http://go.microsoft.com/fwlink/?LinkId = 320596
使用ssh的示例.
我登录物理机
我进了机器
运行命令.工作良好.
在物理机上注销
在同一个ssh会话中运行命令.失败.
当我说"物理机器"时,我的意思是运行命令的主机.
我有一台最新的Windows 10 Professional机器和最新的Visual Studio 2013.
如果命令是通过Windows任务调度程序运行(在没有以最高权限登录时设置为工作),则在用户注销时也会失败.
将devenv设置为始终以管理员身份打开(使用我在SO上看到的所有方法)并没有帮助.禁用UAC没有帮助.
我会选择让机器一直处于登录状态,但是在远程桌面会话之后也会出现问题: - 如果我将远程桌面安装到该机器上,那么当我打开远程会话时,命令会继续工作(即使是通过ssh和任务调度程序),但是一旦断开rdp会话,它就会停止工作.
编辑:在执行点加载正确的用户配置文件,devenv活动日志显示没有错误或警告.日志只显示devenv退出之后Client rights determined
.
编辑:我已经测试了@Callan的msbuild
解决方案,它似乎适用于我的所有项目,使用以下解决方案构建:
msbuild $sln /t:Rebuild /p:Configuration=Release;Platform=x64
以下是单个项目构建(在此处找到):
msbuild $sln /t:"$project:Rebuild" /p:Configuration=Release;Platform=x64 /p:BuildProjectReferences=false
这并不是问题的严格解决方案,因为@SimonMourier指出,它们并不等同.这是一个幸运的解决方法,虽然它可能不适用于所有情况,但它似乎开始看起来没有更好的解决方案.
它肯定比我目前的解决方法更好,使机器自动登录和锁定,然后告诉我的机器在RDP会话结束时重新启动,确保我总是有一个交互式会话.