Terminal: VS failed to build with many errors

Created on 7 May 2019  ·  34Comments  ·  Source: microsoft/terminal

conpronps.lib不是有效的win32程序,,release不了。。

Area-Build Issue-Question Product-Terminal Resolution-Answered

Most helpful comment

VS2019提示function不是std成员,或者包含不能在当前代码页(936)中表示的字符等错误的可以考虑我这个分支:

git clone -b vs2019fix https://github.com/SwimmingTiger/Terminal.git

构建目标默认是ARM64,请切换为x64或者x86,否则构建后不能运行,并且通常不能构建(没有安装ARM工具集)。

提示wil/Common.h找不到的,请运行

git submodule update --init --recursive

提示程序集缺失的,请用Visual Studio打开解决方案,在解决方案上右击,点击“还原NuGet包”,或者运行

dep\nuget\nuget.exe restore OpenConsole.sln

(如果该命令找不到,请进行git submodule update --init --recursive

如果提示缺少构建工具集,请为VS2019安装以下组件(可能有多余,我不知道哪个多余):

  • 工作负载:

    • 通用Windows平台开发

  • 单个组件

    • C++ ATL for v142 生成工具 (x86和x64)

    • Windows 10 SDK (任一版本,但不能比你当前系统版本高,否则构建出的程序可能无法运行)

    • Windows 通用 C 运行时

    • NuGet 包管理器

    • C# 和 Visual Basic

    • C++ 核心功能

    • C# 和 Visual Basic Roslyn 编译器

    • MSBuild

    • MSVC v142 - VS 2019 C++ x64/x86 生成工具

    • Windows 通用 CRT SDK

如果提示缺失平台工具集v141,请在解决方案上右击,选择“重定目标解决方案”,将平台工具集升级v142。注意,你可能需要操作两次,构建一次后再次操作,还会产生一些v141工具集的项目,位于对话框底部(此时将有两组不同的下拉框)。

构建完成后怎么安装?请在解决方案上右击,选择“部署解决方案”,“Windows Terminal (Preview)”将出现在开始菜单。

最后,如果找不到多标签功能,请按Ctrl+T。

最终效果:
最终效果

All 34 comments

如果是VS 2019,前面有解决方案试试

刚编译了一把,107个warning,1个错误,Windows.UI.Xaml版本不对,但是nuget又没有那个版本。。。。

如果是VS 2019,前面有解决方案试试

2017..

刚编译了一把,107个warning,1个错误,Windows.UI.Xaml版本不对,但是nuget又没有那个版本。。。。

这有编译好的版本么。。

刚编译了一把,107个warning,1个错误,Windows.UI.Xaml版本不对,但是nuget又没有那个版本。。。。

这有编译好的版本么。。

看老外也有好多没法编译的。。。我还在摸索中

vs2017
command: msbuild OpenConsola.sln /p:Platform=x64
129 警告
21 错误
看了下很多错误都是和\src\inc\test\commonstate.hpp这个文件有关系


再更新, x86平台
130个警告
21个错误

我猜测是不是要Windows 1903版本才行啊,我第二次编译出现了新的错误。。。。

Severity    Code    Description Project File    Line    Suppression State
Error   C1083   Cannot open include file: 'winrt/Microsoft.Terminal.TerminalControl.h': No such file or directory   WindowsTerminal c:\users\svandex\documents\github\terminal\src\cascadia\windowsterminal\apphost.h   6   

缺少头文件了

我猜测是不是要Windows 1903版本才行啊,我第二次编译出现了新的错误。。。。

Severity  Code    Description Project File    Line    Suppression State
Error C1083   Cannot open include file: 'winrt/Microsoft.Terminal.TerminalControl.h': No such file or directory   WindowsTerminal c:\users\svandex\documents\github\terminal\src\cascadia\windowsterminal\apphost.h   6   

缺少头文件了

之前有帖子说要1903

我猜测是不是要Windows 1903版本才行啊,我第二次编译出现了新的错误。。。。

Severity  Code    Description Project File    Line    Suppression State
Error C1083   Cannot open include file: 'winrt/Microsoft.Terminal.TerminalControl.h': No such file or directory   WindowsTerminal c:\users\svandex\documents\github\terminal\src\cascadia\windowsterminal\apphost.h   6   

缺少头文件了

安装WinRT包即可
https://marketplace.visualstudio.com/items?itemName=CppWinRTTeam.cppwinrt101804264

So for the record, the megathread for all build issues is #489.

Make sure to use VS 2017. There are workarounds for 2019, but 2017 will be easier.

Make sure to install all the necessary VS components, as noted in https://github.com/microsoft/Terminal#prerequisites.

Also, make sure to init the git submodules, and do a nuget restore.

B站有教安装的视频:https://www.bilibili.com/video/av51726432/
相关编译包下载地址:deleted

VS2019提示function不是std成员,或者包含不能在当前代码页(936)中表示的字符等错误的可以考虑我这个分支:

git clone -b vs2019fix https://github.com/SwimmingTiger/Terminal.git

构建目标默认是ARM64,请切换为x64或者x86,否则构建后不能运行,并且通常不能构建(没有安装ARM工具集)。

提示wil/Common.h找不到的,请运行

git submodule update --init --recursive

提示程序集缺失的,请用Visual Studio打开解决方案,在解决方案上右击,点击“还原NuGet包”,或者运行

dep\nuget\nuget.exe restore OpenConsole.sln

(如果该命令找不到,请进行git submodule update --init --recursive

如果提示缺少构建工具集,请为VS2019安装以下组件(可能有多余,我不知道哪个多余):

  • 工作负载:

    • 通用Windows平台开发

  • 单个组件

    • C++ ATL for v142 生成工具 (x86和x64)

    • Windows 10 SDK (任一版本,但不能比你当前系统版本高,否则构建出的程序可能无法运行)

    • Windows 通用 C 运行时

    • NuGet 包管理器

    • C# 和 Visual Basic

    • C++ 核心功能

    • C# 和 Visual Basic Roslyn 编译器

    • MSBuild

    • MSVC v142 - VS 2019 C++ x64/x86 生成工具

    • Windows 通用 CRT SDK

如果提示缺失平台工具集v141,请在解决方案上右击,选择“重定目标解决方案”,将平台工具集升级v142。注意,你可能需要操作两次,构建一次后再次操作,还会产生一些v141工具集的项目,位于对话框底部(此时将有两组不同的下拉框)。

构建完成后怎么安装?请在解决方案上右击,选择“部署解决方案”,“Windows Terminal (Preview)”将出现在开始菜单。

最后,如果找不到多标签功能,请按Ctrl+T。

最终效果:
最终效果

@SwimmingTiger 你的操作系统版本是1903吧

@SwimmingTiger 你的操作系统版本是1903吧

是的。不过即使程序不能在低版本运行,也不会出现在低版本不能构建的问题,因为Visual Studio及其编译器工具集可以在低版本正常运行。构建错误通常是代码和配置问题,或者Visual Studio缺少组件。

@SwimmingTiger 你的操作系统版本是1903吧

是的。不过即使程序不能在低版本运行,也不会出现在低版本不能构建的问题,因为Visual Studio及其编译器工具集可以在低版本正常运行。构建错误通常是代码和配置文件,或者Visual Studio缺少组件。

我编译成功了,在Visual Studio里点击调试,是会要求我升级操作系统的。在output里显示的信息代码是DEP3321

Severity    Code    Description Project File    Line    Suppression State
Error       DEP3321: To deploy this application, your deployment target should be running Windows Universal Runtime version 10.0.18362.0 or higher. You currently are running version 10.0.17763.475. Please update your OS, or change your deployment target to a device with the appropriate version. CascadiaPackage         

你可以通过右击解决方案>“重定目标解决方案”更换一个“Windows SDK最低版本”(注意底部还有一组下拉框,其中一个是最低版本)。应该可以选择“10.0.17763”。
如果没有其他可用版本,通过Visual Studio Installer进行安装。

VS2019提示function不是std成员,或者包含不能在当前代码页(936)中表示的字符等错误的可以考虑我这个分支:

git clone -b vs2019fix https://github.com/SwimmingTiger/Terminal.git

构建目标默认是ARM64,请切换为x64或者x86,否则构建后不能运行,并且通常不能构建(没有安装ARM工具集)。

提示wil/Common.h找不到的,请运行

git submodule update --init --recursive

提示程序集缺失的,请用Visual Studio打开解决方案,在解决方案上右击,点击“还原NuGet包”,或者运行

dep\nuget\nuget.exe restore OpenConsole.sln

(如果该命令找不到,请进行git submodule update --init --recursive

如果提示缺少构建工具集,请为VS2019安装以下组件(可能有多余,我不知道哪个多余):

  • 工作负载:

    • 通用Windows平台开发
  • 单个组件

    • C++ ATL for v142 生成工具 (x86和x64)
    • Windows 10 SDK (任一版本,但不能比你当前系统版本高,否则构建出的程序可能无法运行)
    • Windows 通用 C 运行时
    • NuGet 包管理器
    • C# 和 Visual Basic
    • C++ 核心功能
    • C# 和 Visual Basic Roslyn 编译器
    • MSBuild
    • MSVC v142 - VS 2019 C++ x64/x86 生成工具
    • Windows 通用 CRT SDK

构建完成后怎么安装?请在解决方案上右击,选择“部署解决方案”,“Windows Terminal (Preview)”将出现在开始菜单。

最后,如果找不到多标签功能,请按Ctrl+T。

最终效果:
最终效果

谢谢大佬。不过我也是README没看仔细。

VS2019提示function不是std成员,或者包含不能在当前代码页(936)中表示的字符等错误的可以考虑我这个分支:
git clone -b vs2019fix https://github.com/SwimmingTiger/Terminal.git

构建目标默认是ARM64,请切换为x64或者x86,否则构建后不能运行,并且通常不能构建(没有安装ARM工具集)。
提示wil/Common.h找不到的,请运行
git submodule update --init --recursive

提示程序集缺失的,请用Visual Studio打开解决方案,在解决方案上右击,点击“还原NuGet包”,或者运行
dep\nuget\nuget.exe restore OpenConsole.sln

(如果该命令找不到,请进行git submodule update --init --recursive)
如果提示缺少构建工具集,请为VS2019安装以下组件(可能有多余,我不知道哪个多余):

工作负载:

通用Windows平台开发

单个组件

C++ ATL for v142 生成工具 (x86和x64)
Windows 10 SDK (任一版本,但不能比你当前系统版本高,否则构建出的程序可能无法运行)
Windows 通用 C 运行时
NuGet 包管理器
C# 和 Visual Basic
C++ 核心功能
C# 和 Visual Basic Roslyn 编译器
MSBuild
MSVC v142 - VS 2019 C++ x64/x86 生成工具
Windows 通用 CRT SDK

构建完成后怎么安装?请在解决方案上右击,选择“部署解决方案”,“Windows Terminal (Preview)”将出现在开始菜单。
最后,如果找不到多标签功能,请按Ctrl+T。
最终效果:

谢谢大佬。不过我也是README没看仔细。

感觉VS每个人的问题都不一样。。真是奇怪

B站有教安装的视频:https://www.bilibili.com/video/av51726432/
相关编译包下载地址:Deleted

这个编译好的版本,打开是这样的
批注 2019-05-08 014741

B站有教安装的视频:https://www.bilibili.com/video/av51726432/
相关编译包下载地址:Deleted

这个编译好的版本,打开是这样的
批注 2019-05-08 014741

#i-built-and-ran-the-new-terminal-but-it-looks-just-like-the-old-console-what-gives

@VATALU this is by design - try pressing Ctrl+t.

win10-1903已入坑

编译两天了,狂报错,哎!

image
win10升级到预览版才安装成功,感觉就多了个透明和多标签页的效果,期待继续更新

https://github.com/microsoft/Terminal/issues/489#issue-441161390

一点也不炫酷,还不如继续用console emulator

我找了一个人家编译好的直接就装了。。Am 08.05.2019 08:28 schrieb Picoman Yang notifications@github.com:编译两天了,狂报错,哎!

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.

所有2220错误用下面这个修正:
image
还有一些cpp或者头文件错误,先修改编码格式到utf8
SDK能升级一下最好,单独升一下
最后我这边发现的几个注意点,不知道其他人是不是也一样会这样的问题就是
1、源码路径中文件夹不要有中文;
2、源码路径中文件夹不要有空格(和奇怪);
3、源码路径某些特殊字符也不能用,我原来的所有源码归类中有一个是C#,当时是扔在这个下面的,编译生成拷贝文件会出错,不用有“#”这个;
其他好像没有什么要特别注意的了,最后部署成功后运行效果如下
image
单窗口下使用“Ctrl + T”打开多窗口就行。

I've changed the title to English for triage purposes. We think that this is related to and/or will resolve itself with #565 and #489

conpronps.lib不是有效的win32程序,,release不了。。

这个问题+1,1903的版本

This appears to have sorted itself out. Closing.

error : The OutputPath property is not set for project 'TerminalControl.vcxproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Release' Platform='x64'. This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.
HELP

显示没有怎么吧啊?求助

搞到午夜,有点绝望。
image

搞到午夜,有点绝望。
image

破案了,是windows defender阻止了程序访问我的目录,关掉就好了。

Was this page helpful?
0 / 5 - 0 ratings

Related issues

NickITGuy picture NickITGuy  ·  3Comments

mrmlnc picture mrmlnc  ·  3Comments

carlos-zamora picture carlos-zamora  ·  3Comments

DieselMeister picture DieselMeister  ·  3Comments

ghost picture ghost  ·  3Comments