0

I've looked around and found this answer: https://stackoverflow.com/a/71135859/13168911 but I can't seem to make it work for my particular project (at LEAST 10 years old - currently uses a combination of C# 5 and VB within an ASP.NET project).

My issue is that, now that I've had a moment to spare, I've followed the instructions in that answer and committed to uninstalling Visual Studio 2019...And it still won't build.

In a bid to cover all the bases I've downloaded all of the Reference Assemblies packages, so here's my packages.config file:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.AspNet.WebApi" version="5.2.7" targetFramework="net48" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.7" targetFramework="net48" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.7" targetFramework="net48" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.7" targetFramework="net48" />
  <package id="Microsoft.Exchange.WebServices" version="2.2" targetFramework="net40" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net20" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net35" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net40" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net45" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net451" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net452" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net46" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net461" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net462" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net47" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net471" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net472" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Microsoft.NETFramework.ReferenceAssemblies.net48" version="1.0.2" targetFramework="net48" developmentDependency="true" />
  <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" />
  <package id="Tesseract" version="2.3.0.0" targetFramework="net40" requireReinstallation="true" />
</packages>

The build error I'm getting is:

Build started...
------ Build started: Project: Franklin Information System, Configuration: Debug Any CPU ------
Validating Web Site
Building directory '/App_WebReferences/'.
App_WebReferences/SSRS/(1): Build (web): Reference assemblies for target .NET Framework version not found; please ensure they are installed, or select a valid target version.

Which, from what I can tell, points to this discomap file:

<?xml version="1.0" encoding="utf-8"?>
<DiscoveryClientResultsFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Results>
    <DiscoveryClientResult referenceType="System.Web.Services.Discovery.ContractReference" url="https://myReportServer/reportexecution2005.asmx" filename="reportexecution2005.wsdl" />
  </Results>
</DiscoveryClientResultsFile>

Now, I know that on other projects there'd be something in the csproj/vbproj/proj file... But this particular project doesn't have one. Short of clogging up my system with an installation of VS 2019 that I'm never going to use, is there any way of making this build?

Andrew Corrigan
  • 1,017
  • 6
  • 23
  • The error tells you that the discontinued .NET Framework you want to use isn't installed on the machine. You'll have to install it. Unless that's caused by gratuitous package use - why are you adding reference assemblies for discontinued runtimes? C# 5 came out with .NET Framework 4.5. Which won't be found on any machine nowadays - .NET 4.x versions are binary replacements. If you install .NET 4.8 it will replace any older 4.x runtimes – Panagiotis Kanavos Mar 22 '22 at 16:41
  • Huh. So I just remove the newer ones until it builds? – Andrew Corrigan Mar 22 '22 at 16:43
  • @PanagiotisKanavos - the Reference Assemblies were the suggested solution in the answer I'd linked. I'm aware the framewors are no longer supported - that's why I'm having the grief, the project is on a discontinued framwork and I can't seem to find the Developer Pack to install (because, y'know it's discontinued). – Andrew Corrigan Mar 23 '22 at 07:54
  • Have you tried changing the project's target framework? You're referencing *newer* packages. Your development machine almost certainly has 4.8. Probably your production machines as well. There's no reason to keep targeting obsolete frameworks when your code actually runs on *newer* ones. – Panagiotis Kanavos Mar 23 '22 at 09:00
  • @PanagiotisKanavos, it should be targeting 4.8, according to the web config – Andrew Corrigan Mar 23 '22 at 11:40

0 Answers0