title: How to deploy a ClickOnce .NET 3.5 application on a .NET 3.0 machine?
body: <p>I have <a href="http://en.wikipedia.org/wiki/.NET_Framework" rel="nofollow noreferrer">.NET</a> 3.5 SP1 <a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation" rel="nofollow noreferrer">WPF</a> application which I'm successfully deploying to client computers using ClickOnce. </p>
  
  <p>Now I got a new requirement - one of our clients need to run the application on machines equipped just with .NET 3.0, and it's entirely impossible to upgrade or install anything on the machines. I already tried to run the 3.5 application with some of the 3.5 .NET Framework DLLs copied to the application directory, and it worked without any problems. The only problem at the moment is ClickOnce. I already made it to include the 3.5 .NET Framework System.*.dll files in list of application files, but it always aborts installation on 3.0 machine with this error message:</p>
  
  <blockquote>
    <p>Unable to install or run the
    application. The application requires
    that assembly System.Core Version
    3.5.0.0 be installed in the Global Assembly Cache (GAC) first. Please
    contact your system administrator.</p>
  </blockquote>
  
  <p>I already tried to tweak prerequisites on Publish tab of my project, but no combination solved the issue.</p>
  
  <p>What part of ClickOnce is responsible for checking prerequisites? I already tried to deploy using <code>mageui.exe</code>, but the 3.5 .NET Framework error is still present. What should I do to fore ClickOnce to stop checking any prerequisites at all?</p>
  
  <p>The project is created using Visual Studio 2010.</p>
  
  <hr>
  
  <p>I may just find a cause of the issue - the ClickOnce publish process (and MageUI also) generates an application manifest file which defines dependency "preRequisite" on some 3.5 assemblies (System.Core, System.Data.Entity). So I just need to force ClickOnce publish/MageUI not to generate these dependencies somehow...</p>