我在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中找不到该选项。
答案 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
。