.NET MAUI添加类库依赖后MSBuild发布失败求助
问题描述
使用命令msbuild /restore SmartcardMAUITest.csproj /restore /t:Publish /p:TargetFramework=net7.0-windows10.0.19041.0 /p:configuration=release(因遗留引用需用MSBuild而非dotnet publish)发布项目时可正常运行,但添加空.NET 7类库引用后构建失败,报错:
error NETSDK1005: Assets file '\SmartcardMAUITest\ClassLibrary1\obj\project.assets.json' doesn't have a target for 'net7.0'. Ensure that restore has run and that you have included 'net7.0' in the TargetFrameworks for your project. [\SmartcardMAUITest\ClassLibrary1\ClassLibrary1.csproj]
解决办法
检查类库的目标框架配置:打开
ClassLibrary1.csproj文件,确认<TargetFramework>或<TargetFrameworks>节点包含net7.0。单一目标框架配置示例:<TargetFramework>net7.0</TargetFramework>多目标框架需确保
net7.0在列表中,比如:<TargetFrameworks>net7.0;net6.0</TargetFrameworks>单独对类库执行Restore:在发布主项目前,先为类库单独执行Restore操作,确保生成正确的
project.assets.json文件:msbuild /restore ClassLibrary1\ClassLibrary1.csproj /p:configuration=release调整发布命令逻辑:原命令重复了
/restore参数,可改为针对解决方案执行发布,确保依赖项目的Restore被触发:msbuild /restore SmartcardMAUITest.sln /t:Publish /p:TargetFramework=net7.0-windows10.0.19041.0 /p:configuration=release若必须单独发布主项目,可先执行全局Restore再发布:
msbuild /restore /p:configuration=release msbuild SmartcardMAUITest.csproj /t:Publish /p:TargetFramework=net7.0-windows10.0.19041.0 /p:configuration=release清理缓存后重新构建:删除类库和主项目的
obj、bin目录,清除旧缓存文件后,重新执行Restore和发布命令。
内容的提问来源于stack exchange,提问作者Igal Flegmann

