Browse Source

Suppress MSB3644: The reference assemblies for framework ... were not found.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5853 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 15 years ago
parent
commit
fcff1190af
  1. 6
      AddIns/ICSharpCode.SharpDevelop.addin
  2. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  3. 7
      src/Main/Base/Project/Src/Project/MSBuildEngine/BuildWorkerManager.cs
  4. 7
      src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs
  5. 56
      src/Main/Base/Project/Src/Project/MSBuildEngine/TargetingPackWarningWorkaround.cs

6
AddIns/ICSharpCode.SharpDevelop.addin

@ -2149,4 +2149,10 @@ @@ -2149,4 +2149,10 @@
description = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectFile.LogicalName.Description}" />
</Condition>
</Path>
<Path name = "/SharpDevelop/MSBuildEngine/LoggerFilters">
<Class
id = "TargetingPackWarningWorkaround"
class = "ICSharpCode.SharpDevelop.Project.TargetingPackWarningWorkaround"/>
</Path>
</AddIn>

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -268,6 +268,7 @@ @@ -268,6 +268,7 @@
<Compile Include="Src\Project\MSBuildEngine\SDConsoleLogger.cs" />
<Compile Include="Src\Project\MSBuildEngine\BuildWorkerManager.cs" />
<Compile Include="Src\Project\MSBuildEngine\MSBuildEngine.cs" />
<Compile Include="Src\Project\MSBuildEngine\TargetingPackWarningWorkaround.cs" />
<Compile Include="Src\Project\MSBuildEngine\WorkerProcess.cs" />
<Compile Include="Src\Project\MSBuildFileProject.cs" />
<Compile Include="Src\Project\MSBuildItemWrapper.cs" />

7
src/Main/Base/Project/Src/Project/MSBuildEngine/BuildWorkerManager.cs

@ -33,6 +33,10 @@ namespace ICSharpCode.SharpDevelop.Project @@ -33,6 +33,10 @@ namespace ICSharpCode.SharpDevelop.Project
public void RunBuildJob(BuildJob job, IMSBuildChainedLoggerFilter loggerChain, Action<bool> reportWhenDone, CancellationToken cancellationToken)
{
if (job == null)
throw new ArgumentNullException("job");
if (loggerChain == null)
throw new ArgumentNullException("loggerChain");
BuildWorker worker = GetFreeWorker();
worker.RunJob(job, loggerChain, reportWhenDone, cancellationToken);
}
@ -76,6 +80,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -76,6 +80,7 @@ namespace ICSharpCode.SharpDevelop.Project
public void RunJob(BuildJob job, IMSBuildChainedLoggerFilter loggerChain, Action<bool> reportWhenDone, CancellationToken cancellationToken)
{
Debug.Assert(loggerChain != null);
this.loggerChain = loggerChain;
this.reportWhenDone = reportWhenDone;
try {
@ -119,9 +124,9 @@ namespace ICSharpCode.SharpDevelop.Project @@ -119,9 +124,9 @@ namespace ICSharpCode.SharpDevelop.Project
void BuildDone(bool success)
{
lock (this) {
cancellationRegistration.Dispose();
if (reportWhenDone == null)
return;
cancellationRegistration.Dispose();
reportWhenDone(success);
reportWhenDone = null;
}

7
src/Main/Base/Project/Src/Project/MSBuildEngine/MSBuildEngine.cs

@ -177,6 +177,13 @@ namespace ICSharpCode.SharpDevelop.Project @@ -177,6 +177,13 @@ namespace ICSharpCode.SharpDevelop.Project
get { return projectFileName; }
}
/// <summary>
/// Gets the minimum solution version (VS version) required to open the project.
/// </summary>
public int ProjectMinimumSolutionVersion {
get { return projectMinimumSolutionVersion; }
}
List<string> interestingTasks = new List<string>();
string temporaryFileName;

56
src/Main/Base/Project/Src/Project/MSBuildEngine/TargetingPackWarningWorkaround.cs

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <author name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
namespace ICSharpCode.SharpDevelop.Project
{
/// <summary>
/// Suppresses the warning MSB3644.
/// </summary>
public sealed class TargetingPackWarningWorkaround : IMSBuildLoggerFilter
{
/*
* Warning MSB3644: The reference assemblies for framework
* ".NETFramework,Version=v4.0,Profile=Client" were not found. To resolve this,
* install the SDK or Targeting Pack for this framework version or retarget
* your application to a version of the framework for which you have the SDK
* or Targeting Pack installed. Note that assemblies will be resolved from
* the Global Assembly Cache (GAC) and will be used in place of reference assemblies.
* Therefore your assembly may not be correctly targeted for the framework you intend.
*/
public IMSBuildChainedLoggerFilter CreateFilter(MSBuildEngine engine, IMSBuildChainedLoggerFilter nextFilter)
{
if (engine.ProjectMinimumSolutionVersion >= Solution.SolutionVersionVS2010) {
return new TargetingPackWarningWorkaroundChainEntry(nextFilter);
} else {
return nextFilter;
}
}
sealed class TargetingPackWarningWorkaroundChainEntry : IMSBuildChainedLoggerFilter
{
readonly IMSBuildChainedLoggerFilter nextFilter;
public TargetingPackWarningWorkaroundChainEntry(IMSBuildChainedLoggerFilter nextFilter)
{
this.nextFilter = nextFilter;
}
public void HandleError(BuildError error)
{
if (error.ErrorCode != "MSB3644")
nextFilter.HandleError(error);
}
public void HandleBuildEvent(Microsoft.Build.Framework.BuildEventArgs e)
{
nextFilter.HandleBuildEvent(e);
}
}
}
}
Loading…
Cancel
Save