为了账号安全,请及时绑定邮箱和手机立即绑定

由于缺少 .net 4.5 框架,多目标 .NET Standard 2.0

由于缺少 .net 4.5 框架,多目标 .NET Standard 2.0

C#
catspeake 2021-10-24 17:04:21
在我的开发箱上,我安装了 .net 4.6.2 和 dotnet-sdk-2.1。我最初有 4.0 然后是 4.5 然后是 4.6.2我能够在一个项目上运行 dotnet build,该项目同时针对 netstandard2.0 和 net45,如下所示:<TargetFrameworks>netstandard2.0;net45</TargetFrameworks>我能够成功构建它并运行单元测试等。我看到 bin 目录包含每个目标框架的子目录并包含所有 DLL。当我尝试将我的 CI 构建放在基于 Windows Server 2016 的 teamcity 代理上时。我收到一个错误:未找到框架“.NETFramework,Version=v4.5”的参考程序集。这让我很困惑,因为机器安装了 .NET 4.6.2 SDK。(它还安装了 dotnet sdk 2.1)做一些谷歌搜索,我看到很多人提到框架应该在字典中:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\当我检查 Server 2016 机器时,我看到了目录和子目录:v4.6.2 no subdirectories for 4.5然而,在我的开发框中,我看到了各种目录:4.5、4.0、3.5、4.6.2 ...我无法在 Server 2016 机器上安装 framework 4.5 SDK,因为它已经安装了更高版本。因此,我似乎无法在该机器上构建面向 .NET 4.5 的目标。作为健全性检查,我将我的 csproj 文件更改为:<TargetFrameworks>netstandard2.0;net462</TargetFrameworks>我能够成功地构建该项目。所以构建确实有效,但在那台机器上需要 4.6.2。如果我的目标是net46.我在这里做错了什么?有没有办法让我能够在 Server 2016 机器上将我的项目多目标到 net45?
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

安装 .NET Framework 4.5 Developer Pack 以构建 .NET Framework 4.5 项目。

您说您的服务器安装了 .NET Framework 4.6.2 Developer Pack,并且您正在尝试使用它构建 .NET Framework 4.5 项目。

与每个版本都包含(可以这么说)先前版本的运行时包不同,您需要拥有针对您所针对的框架的确切版本的开发者包。



查看完整回答
反对 回复 2021-10-24
  • 1 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信