Use LogErrorFromException when FindAssembliesWithReferencesTo throws (dotnet/aspnetcore-tooling#702)
Currently FindAssembliesWithReferencesTo produces a stacktrace when P2P builds fail - for instance
if the referenced project has a compiler error. This changes it to use LogErrorFromException.
In addition, there was a typo in the property that disabled the feature.
Fixes https://github.com/aspnet/AspNetCore/issues/11226\n\nCommit migrated from 87c12a116c
This commit is contained in:
parent
19d9dbcd43
commit
4e16cfd4da
|
|
@ -1,6 +1,7 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
@ -45,9 +46,15 @@ namespace Microsoft.AspNetCore.Razor.Tasks
|
||||||
var targetAssemblyNames = TargetAssemblyNames.Select(s => s.ItemSpec).ToList();
|
var targetAssemblyNames = TargetAssemblyNames.Select(s => s.ItemSpec).ToList();
|
||||||
|
|
||||||
var provider = new ReferenceResolver(targetAssemblyNames, referenceItems);
|
var provider = new ReferenceResolver(targetAssemblyNames, referenceItems);
|
||||||
var assemblyNames = provider.ResolveAssemblies();
|
try
|
||||||
|
{
|
||||||
ResolvedAssemblies = assemblyNames.ToArray();
|
var assemblyNames = provider.ResolveAssemblies();
|
||||||
|
ResolvedAssemblies = assemblyNames.ToArray();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.LogErrorFromException(ex);
|
||||||
|
}
|
||||||
|
|
||||||
return !Log.HasLoggedErrors;
|
return !Log.HasLoggedErrors;
|
||||||
}
|
}
|
||||||
|
|
@ -17,9 +17,9 @@ Copyright (c) .NET Foundation. All rights reserved.
|
||||||
Condition="'$(RazorSdkBuildTasksAssembly)' != ''" />
|
Condition="'$(RazorSdkBuildTasksAssembly)' != ''" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<GenerateMvcApplicationPartsAttribute Condition="'$(GenerateMvcApplicationPartsAssemblyAttributes)' == '' AND '$(OutputType)' == 'Exe'">true</GenerateMvcApplicationPartsAttribute>
|
<GenerateMvcApplicationPartsAssemblyAttributes Condition="'$(GenerateMvcApplicationPartsAssemblyAttributes)' == '' AND '$(OutputType)' == 'Exe'">true</GenerateMvcApplicationPartsAssemblyAttributes>
|
||||||
|
|
||||||
<CoreCompileDependsOn Condition="'$(GenerateMvcApplicationPartsAttribute)' == 'true' AND '$(DesignTimeBuild)' != 'true'">
|
<CoreCompileDependsOn Condition="'$(GenerateMvcApplicationPartsAssemblyAttributes)' == 'true' AND '$(DesignTimeBuild)' != 'true'">
|
||||||
_DiscoverMvcApplicationParts;
|
_DiscoverMvcApplicationParts;
|
||||||
$(CoreCompileDependsOn);
|
$(CoreCompileDependsOn);
|
||||||
</CoreCompileDependsOn>
|
</CoreCompileDependsOn>
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,17 @@ namespace Microsoft.AspNetCore.Razor.Design.IntegrationTests
|
||||||
Assert.AssemblyHasAttribute(result, Path.Combine(OutputPath, "AppWithP2PReference.dll"), "Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute");
|
Assert.AssemblyHasAttribute(result, Path.Combine(OutputPath, "AppWithP2PReference.dll"), "Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
[InitializeTestProject("AppWithP2PReference", additionalProjects: "ClassLibrary")]
|
||||||
|
public async Task Build_ProjectWithDependencyThatReferencesMvc_DoesNotGenerateAttributeIfFlagIsReset()
|
||||||
|
{
|
||||||
|
var result = await DotnetMSBuild("Build /p:GenerateMvcApplicationPartsAssemblyAttributes=false");
|
||||||
|
|
||||||
|
Assert.BuildPassed(result);
|
||||||
|
|
||||||
|
Assert.FileDoesNotExist(result, IntermediateOutputPath, "AppWithP2PReference.MvcApplicationPartsAssemblyInfo.cs");
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
[InitializeTestProject("SimpleMvc")]
|
[InitializeTestProject("SimpleMvc")]
|
||||||
public async Task Build_ProjectWithoutMvcReferencingDependencies_DoesNotGenerateAttribute()
|
public async Task Build_ProjectWithoutMvcReferencingDependencies_DoesNotGenerateAttribute()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue