如何在.NET Standard 2.0中配置内部类型对多个测试程序集可见
如何在.NET Standard 2.0项目中配置多个测试程序集可见内部类
别担心,这个问题其实很容易解决——你只需要在同一个<ItemGroup>下添加多个独立的AssemblyAttribute节点,每个节点对应一个你要授权的测试程序集即可。本质上,这和在代码里多次添加[InternalsVisibleTo]特性是一个道理,只是通过MSBuild配置来实现而已。
修改后的.csproj配置示例如下:
<ItemGroup> <!-- 第一个测试程序集:比如单元测试集 --> <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo"> <_Parameter1>$(MSBuildProjectName).Tests</_Parameter1> </AssemblyAttribute> <!-- 第二个测试程序集:比如集成测试集 --> <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo"> <_Parameter1>$(MSBuildProjectName).IntegrationTests</_Parameter1> </AssemblyAttribute> <!-- 还可以继续添加更多测试程序集,格式完全一致 --> </ItemGroup>
额外注意事项
- 如果你的测试程序集是强签名的,需要在程序集名称后附加公钥信息,格式类似:
MyProject.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100... - 这个配置方式不仅适用于.NET Standard 2.0,在.NET Core、.NET 5+以及传统.NET Framework项目中都是通用的,核心逻辑就是为目标程序集注入多个
InternalsVisibleTo特性。
内容的提问来源于stack exchange,提问作者Timo
相关产品推荐
相关产品推荐

