创建自定义Windows应用打包项目模板时缺失Microsoft.DesktopBridge.props
这个问题的核心原因很明确:Windows应用打包项目(.wapproj)依赖的是Visual Studio自带的MSBuild扩展组件,而非.NET SDK中的内容。当你用dotnet new命令创建项目时,dotnet CLI会默认使用.NET SDK内置的MSBuild加载项目,而该SDK路径下根本不存在Microsoft.DesktopBridge.props——这个文件实际位于Visual Studio安装目录的MSBuild扩展文件夹中。
下面是具体的修复方案:
1. 修改模板中的项目路径配置
打开模板里的Installer.wapproj文件,调整WapProjPath的定义,让它优先指向Visual Studio安装的MSBuild扩展路径,而非.NET SDK路径。替换原有的WapProjPath属性配置为:
<PropertyGroup> <!-- 优先使用Visual Studio 32位MSBuild扩展路径(DesktopBridge组件默认安装于此) --> <WapProjPath Condition="'$(WapProjPath)'=='' and '$(VisualStudioVersion)' != ''">$(MSBuildExtensionsPath32)\Microsoft\DesktopBridge\</WapProjPath> <!-- 保留原回退路径,兼容特殊环境 --> <WapProjPath Condition="'$(WapProjPath)'==''">$(MSBuildExtensionsPath)\Microsoft\DesktopBridge\</WapProjPath> </PropertyGroup>
$(MSBuildExtensionsPath32)变量会指向Visual Studio安装的32位MSBuild扩展目录,通常是C:\Program Files (x86)\MSBuild,Microsoft.DesktopBridge.props文件就位于该路径下的Microsoft\DesktopBridge文件夹中。
2. 补充模板使用提示(可选但推荐)
.wapproj本质是为Visual Studio设计的项目类型,dotnet CLI对它的支持并不完善。建议在模板的说明文档或创建后的提示中补充说明:项目创建完成后,请使用Visual Studio打开操作,而非直接用dotnet build等CLI命令执行构建。
3. 重新打包并安装模板
修改完项目文件后,重新通过Visual Studio的“创建模板”功能生成模板,再执行dotnet new -i .\重新安装模板,之后创建项目就不会出现找不到文件的错误了。
内容的提问来源于stack exchange,提问作者johnway2

