我正在将一个旧的应用程序转换为Azure DevOps、.NET 4.8和新的项目格式。由于一些第三方的原因,我目前无法迁移到net5或6。这个项目在x86和x64中生成程序集。这两个平台都在本地完美地恢复和构建,但我在Azure DevOps上使用了DevOps失败。
##[error]C:\Program Files\dotnet\sdk\5.0.404\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5): Error NETSDK1047: Assets file 'D:\a\1\s\src\BraccoUIComponents\obj\project.assets.json' doesn't have a target for 'net48/win7-x64'. Ensure that restore has run and that you have included 'net48' in the TargetFrameworks for your project. You may also need to include 'win7-x64' in your project's RuntimeIdentifiers.我在Directory.Build.props中有以下几行
<TargetFramework>net48</TargetFramework>
<RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
<Platforms>x64;x86</Platforms>我已经测试了https://github.com/dotnet/sdk/issues/1321中列出的各种解决方案和各种SO线程,但它们似乎都不起作用(TargetFrameworks、RuntimeIdentifier、RuntimeIdentifiers、win-x64、win7-x64.)。
发布于 2022-02-24 22:19:20
在我看来,您的"RuntimeIdentifiers“行中有一个错误--它应该包含"win7-x64”,其中有"win-x64“(注意缺少的7)。我看到你尝试了“win7 7-64”路径,以及其他一些,我想知道当你尝试winy7-64的时候,它是否真的正确地通过了这个部分,并且在其他事情上爆炸了,也许你误读了茶叶?
我今天遇到了这个问题(在一个纯64位的应用程序上),我的修复方法是将这一行添加到我的所有csproj文件中:
<RuntimeIdentifiers>win7-x64</RuntimeIdentifiers>你可能也失踪了:
<TargetFramework>net48</TargetFramework>我的奥德赛还包括必须根除我的解决方案和项目中的所有"AnyCPU“配置项(使用文本编辑器),因为该配置在解决方案文件中的存在似乎覆盖了我传递给构建任务的平台选择。
我看到了网络上的其他帖子,这些帖子让人怀疑您可能在使用旧的NuGet恢复任务,但这并不适用于我的情况。
我相信你已经找到了一种方法,但也许下一个错误信息的受害者会发现这是有用的.
https://stackoverflow.com/questions/70455287
复制相似问题