0

我在 AzureDevops 中有一个 CI 工作,通过(绿色)构建,目标是 .NET 4.6.1。它使用配置为“Hosted VS2017”的代理。

如果我尝试将构建降级到 .NET4.6.0,我会收到以下编译错误:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1179,5):错误 MSB3644:框架的参考程序集“.NETFramework,Version=未找到 v4.6.0"。要解决此问题,请为此框架版本安装 SDK 或 Targeting Pack,或者将您的应用程序重新定位到已安装 SDK 或 Targeting Pack 的框架版本。请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将用于代替引用程序集。因此,您的程序集可能无法正确定位于您想要的框架。

如何确保构建代理中安装了 .NET 4.6.0 版本?我在 AzureDevOps-Pipelines 中找不到该选项。

4

2 回答 2

1

它安装在 100% 上。因为如果您打开 MS 用于代理 VS2017图像的图像,您将看到安装了 4.7.2。如果你看一下这里支持的框架版本,你会看到

Microsoft .NET Framework 4.7.2 是对 .NET Framework 4、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7 和 4.7.1 的高度兼容的就地更新。

这就是为什么我认为您可以在 GitHub 中询问 MS 用于代理的图像的问题。

希望我的回答对你有所帮助。

于 2019-02-17T11:13:22.927 回答
1

Azure DevOps 应该安装了所有的 SDK 和目标包 AFAIK。

确保您的目标是net46不是 net460在您的 csproj 中。

于 2019-02-18T02:36:28.983 回答