Visual Studio 2019中Fluent Ribbon编译失败求助
解决Fluent.Ribbon.Showcase编译失败的问题
刚上手Visual Studio就碰编译问题确实头疼,我帮你拆解下遇到的两个核心问题,一步步解决:
一、修复Fluent.Ribbon项目的MSB3073错误(退出代码9009)
这个错误是因为项目第64行的执行命令是空字符串"",系统没法识别。大概率是项目依赖的某个构建工具没配置对或者没安装:
- 打开
Fluent.Ribbon.csproj定位到第64行,你会看到类似这样的代码:
或者是引用了一个未定义的工具路径变量,比如<Exec Command=""" /><Exec Command="$(SomeTool) args" />。 - 排查工具依赖:
- 先确认你安装了Visual Studio的**".NET桌面开发"工作负载**,WPF项目需要的构建工具都在这个包里。
- 如果是自定义脚本或工具,看看项目文件的
<PropertyGroup>里有没有未赋值的变量,比如SomeTool这类;如果是用dotnet tool管理的工具,打开终端到项目根目录,运行dotnet tool restore安装依赖工具。
- 临时应急方案:如果暂时不需要这个自定义命令,可以先把这一行
<Exec>代码注释掉,先完成编译,之后再慢慢排查工具问题。
二、修复Fluent.Ribbon.Showcase项目的NuGet错误(NU1604/NU1602)
这些错误都是因为NuGet包引用没指定版本范围,导致还原时没法确定稳定版本:
- 先修正项目文件里的拼写错误:你写的
<InlcudeMahAppsMetro>应该是<IncludeMahAppsMetro>(字母l和n顺序反了),这个错误会导致条件判断失效,影响MahApps.Metro包的引用逻辑,必须改。 - 给所有无版本的
<PackageReference>加上版本范围:打开Fluent.Ribbon.Showcase.csproj,找到这些节点:
改成带版本的形式,比如用浮动版本(兼容最新小版本):<PackageReference Include="MahApps.Metro.IconPacks.Material" /> <PackageReference Include="MahApps.Metro" Condition="$(IncludeMahAppsMetro)" />
版本号可以参考Fluent.Ribbon官方仓库的依赖配置,或者直接用NuGet提示的兼容版本。<PackageReference Include="MahApps.Metro.IconPacks.Material" Version="4.*" /> <PackageReference Include="MahApps.Metro" Condition="$(IncludeMahAppsMetro)" Version="2.*" /> - 还原NuGet包:右键解决方案选择还原NuGet包,或者终端运行
dotnet restore。
三、最后一步:清理并重新构建
做完上面的修改后,在Visual Studio里点击生成 -> 清理解决方案,然后再点击重新生成解决方案,应该就能正常编译了。
内容的提问来源于stack exchange,提问作者JosephFTaylor
相关产品推荐
相关产品推荐

