gpt4 book ai didi

windows - 如果没有桌面 session ,devenv.com 将无法启动

转载 作者:可可西里 更新时间:2023-11-01 09:32:48 26 4
gpt4 key购买 nike

我正在为 Windows 10 应用程序设置 Jenkins 作业。我需要使用 devenv.com 可执行文件编译解决方案中的四个项目之一,因为它是一个扩展名为 .vdproj 的项目(安装项目)。其他项目使用 MSBuild 成功构建,没有任何问题。

当我以 root 身份登录到 Jenkins 目标节点时,Jenkins 作业成功结束,但是当我从 Jenkins 运行作业并且我没有登录时失败。

需要您的帮助或变通方法来解决问题。

PS:我们使用 ant 作为任务运行器,我们有一个启动构建过程的特定任务。

编辑 26/01/2017

我想向您提供其他信息,例如错误消息和我之前跳过的一个步骤。

错误消息提供了指向 Microsoft Page 的链接并报告配置问题。

由此解决 StackOverflow帖子,我在下面添加了一个新的 DWORD 注册表项

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild

问题是用户未登录时无法读取此值吗?

编辑 27/01/2017

我快被这个问题搞疯了。

devenv/? 命令在我本地运行时工作正常,但当我从 Jenkins 运行它时无法正常工作,并出现与以前相同的错误:Microsoft Visual Studio 发现配置问题。要修复它,请以管理员身份重新启动或访问 http://go.microsoft.com/fwlink/?LinkId=659046了解更多信息。

所以 devenv.com 在我未登录时无法执行??

2017 年 1 月 31 日更新#

这是我的 .bat 文件,由 ant build.xml 从目标调用

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"

@set MSBUILD="C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe"

%MSBUILD% "%cd%\src\AutomatedSetupBuild.proj"

pause

AutomatedSetupBuild.proj 是一个 MSBuild 脚本

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

<Target Name="Build">
<PropertyGroup>
<DevEnv>C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.com</DevEnv>
<SolutionFile>$(MSBuildProjectDirectory)\MySolution.sln</SolutionFile>
<ProjectFile>MySetupProject\MySetupProject.vdproj</ProjectFile>
<Configuration>Release</Configuration>
</PropertyGroup>

<Exec
Command="&quot;$(DevEnv)&quot; &quot;$(SolutionFile)&quot; /Rebuild &quot;$(Configuration)&quot; /Project &quot;$(ProjectFile)&quot; /ProjectConfig &quot;$(Configuration)&quot; /Log vs.log /useenv"
ContinueOnError="false"
IgnoreExitCode="false"
WorkingDirectory="$(MSBuildProjectDirectory)" />
</Target>
</Project>

如您所见,我在运行 devenv.com 之前加载了环境变量,但我收到了同样的错误。

最佳答案

您是使用自由风格的工作还是使用 Jenkinsfile 进行管道项目?无论如何,要使 devenv.com 正常工作,必须设置环境变量。

请转到 Windows 开始菜单并查找类似 Visual Studio XX -> Visual Studio 工具 -> VS20XX 开发人员命令提示的内容。按鼠标右键并选择属性。在那里寻找目标。在我的例子中,该字段包含以下字符串:

%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat""

如果您使用例如一个 Jenkinsfile,更改对 devnenv.com 的调用,它可能看起来像

bat "devenv.com my_solution_file.sln /project my_project /build  \"Release|x64\""

bat "call \"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat\"; devenv.com my_solution_file.sln /project my_project /build  \"Release|x64\""

重要的是,对 VsDevCmd.bat 的调用在同一个 bat 命令中。否则环境变量设置会丢失,并且不会被第二次调用 bat 看到。

关于windows - 如果没有桌面 session ,devenv.com 将无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41853739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com