ArchUnitNET icon indicating copy to clipboard operation
ArchUnitNET copied to clipboard

ResidesInAssembly loading System.*

Open AdrianoAE opened this issue 1 year ago • 1 comments

When verifying types from assemblies, the base types are being considered

IArchRule rule = Types()
	.That().ResideInAssembly(_DOMAIN_ASSEMBLY)
	.Should().NotDependOnAnyTypesThat().ResideInAssembly(_API_ASSEMBLY);

_ARCHITECTURE.CheckRule(rule);

Expected: Success because there is no reference between the projects

Actual:

ArchUnitNET.xUnit.FailedArchRuleException : "Types that reside in assembly "Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" should not depend on any types that reside in assembly "Api, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" failed:
	Domain.MyClass1 does depend on System.Runtime.CompilerServices.IsReadOnlyAttribute and System.IEquatable`1 and System.TimeSpan and System.TimeSpan& and System.Boolean and System.String and System.Object and System.Int32 and System.Collections.Generic.EqualityComparer`1

Same thing for the opposite rule with DependOnAnyTypesThat(). BCL and FCL types should not be taken into consideration since they are no declared in the given assembly

AdrianoAE avatar Sep 08 '24 06:09 AdrianoAE

Hi @AdrianoAE, this seems to be a bug where types are assigned the wrong origin assembly. I've created #312 which I'd expect to solve your issue. Would be great if you'd be able to test this once we've merged it.

alexanderlinne avatar Oct 10 '24 17:10 alexanderlinne

Hi @AdrianoAE, we've just published version 0.11.3-preview.1. Would you be able to check whether this fixes your issue? Otherwise, an example that reproduces your specific issue would be necessary.

alexanderlinne avatar Jan 24 '25 15:01 alexanderlinne

Hello, I'm sorry at the time I just rewrote my code to use Roslyn so do not have the original code anymore

AdrianoAE avatar Jan 26 '25 16:01 AdrianoAE