我有一个项目,我在Windows 10机器上使用zsh命令构建:
devenv $sln -project $project -rebuild "Release|x64"
如果我在终端中本地运行它,它总是有效的。但是,我通过任务计划程序和(cygwin)ssh运行它。它仍然有效,但只有当我实际上在本地或远程桌面会话中登录到机器时才有效。
如果在用户退出登录时运行命令,我会看到以下消息:
Microsoft Visual Studio已检测到配置问题。要更正此问题,请以管理员身份重新启动。有关更多信息,请访问:http://go.microsoft.com/fwlink/?LinkId=320596 使用ssh的示例。
1. 我登录物理机器 2. 我ssh进入该机器 3. 运行命令。 运行良好。 4. 在物理机器上退出登录 5. 在同一ssh会话中运行命令。 失败。
当我说“物理机器”时,我的意思是运行命令的主机机器。
我有一个最新的Windows 10 Professional机器和最新的Visual Studio 2013。
如果在用户退出登录时以最高权限设置为工作的情况下运行命令,而用户已退出登录,则它也会失败。
将devenv设置为始终以管理员身份打开(使用我在S.O.上看到的所有方法)没有帮助。 禁用UAC也没有帮助。
我会选择让机器一直保持登录状态,但是问题也会在远程桌面会话之后出现:如果我远程桌面连接到那台机器,命令在我打开远程会话时继续工作(即使通过ssh和任务计划程序),但是一旦我断开rdp会话,它就停止工作了。
编辑:在执行时加载了正确的用户配置文件,devenv活动日志没有显示任何错误或警告。日志仅显示devenv在确定客户端权限
后退出。
编辑:我已经测试了@Callan's 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会话结束时重新启动,确保我始终拥有交互式会话。
$USERNAME
和$USERPROFILE
都按预期设置。我已经检查了日志,并且在失败和工作构建的前42个条目是相同的。在工作构建中,第43个条目是“进入函数CVsPackageInfo :: HrInstantiatePackage”,而在失败的构建中,程序似乎只是开始干净地退出“AppId stopped registry detouring”。两者的第42个条目均为“客户端权限确定:…”。 - Jools