编译纯C程序Nethack时缺失Microsoft.DesktopBridge.props报错求助
NetHack编译报错:找不到Microsoft.DesktopBridge.props的解决办法
错误信息
"C:\NetHack-NetHack-3.6.6_Released\win\win32\vs2017\NetHack.sln" (Clean;Build target) (1) -> "C:\NetHack-NetHack-3.6.6_Released\win\win32\vs2017\NetHackPackage.wapproj" (Clean target) (33) -> C:\NetHack-NetHack-3.6.6_Released\win\win32\vs2017\NetHackPackage.wapproj(27,3): error MSB4019: The imported project "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\DesktopBridge\Microsoft.DesktopBridge.props" was not found. Confirm that the expression in the Import declaration "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\DesktopBridge\\Microsoft.DesktopBridge.props" is correct, and that the file exists on disk.
问题场景
在Windows系统上编译NetHack 3.6.6或最新3.7版本源码时,无论使用VS2017还是VS2022,均出现上述错误。本地不存在Microsoft.DesktopBridge.props文件,且NetHack为纯C程序,对出现此类报错存在疑惑。
原因分析
- 报错并非来自NetHack的主C程序项目,而是解决方案中附带的
NetHackPackage.wapproj项目——这是一个Windows应用打包项目,用于生成MSIX格式的安装包,和主程序的纯C代码逻辑完全无关。 - 该打包项目依赖Microsoft Desktop Bridge的MSBuild工具链,
Microsoft.DesktopBridge.props是其中的核心配置文件,若Visual Studio未安装对应的打包组件,就会触发文件找不到的错误。
解决办法
方法1:跳过打包项目,直接编译主程序(推荐,无需额外安装组件)
- 打开VS解决方案后,在解决方案资源管理器中右键点击
NetHackPackage项目,选择卸载项目。 - 仅选中NetHack主项目(如
NetHack)执行编译操作,即可正常构建纯C的游戏程序。
方法2:安装缺失的VS组件(若需要生成MSIX安装包)
- 打开Visual Studio Installer,选择对应的VS版本(2017/2022)点击修改。
- 在工作负载列表中找到通用Windows平台开发,勾选后展开详细选项,确保选中MSIX打包工具;也可直接在单个组件中搜索
Desktop Bridge相关组件并勾选,完成安装后重新编译即可。
内容的提问来源于stack exchange,提问作者rwallace
相关产品推荐
相关产品推荐

