托管的VS2017不包括.NET 4.6.0?

时间:2019-02-16 21:30:15

标签: .net msbuild azure-devops azure-devops-hosted-agent

我在AzureDevops中进行了CI工作,并通过(绿色)构建,目标是.NET 4.6.1。它使用配置为“托管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的参考程序集” ,找不到版本= v4.6.0”。要解决此问题,请为此框架版本安装SDK或Targeting Pack,或将您的应用程序重新定位到已为其安装SDK或Targeting Pack的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将代替参考程序集。因此,您的程序集可能未正确定位到您想要的框架。

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

2 个答案:

答案 0 :(得分:1)

它安装在100%上。因为如果打开MS用于代理VS2017 image的映像,则会看到已安装4.7.2。并且,例如,以here支持的框架版本为例,

  

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用于代理的图像的问题。

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

答案 1 :(得分:1)

Azure DevOps应该在AFAIK上安装所有SDK和目标包。

确保要在csproj中定位net46 not net460