Visual Studio 2017 и новый .csproj InternalsVisibleTo

Где я могу поместить InternalsVisibleTo из AssemblyInfo в новый файл проекта Visual Studio 2017.csproj?

Ответ 1

Чтобы прояснить комментарий Hans Passant выше, вам просто нужно добавить InternalsVisibleTo в любой файл cs в вашем проекте. Например, я создал файл AssemblyInfo.cs в корне проекта, а затем добавил следующий контент (только):

using System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=<ADD_KEY_HERE>")]

Ответ 2

На всякий случай, если кто-то захочет поместить InternalsVisibleTo в файл .csproj вместо AssemblyInfo.cs (возможный сценарий - это соглашение об именовании между тестируемым проектом и тестовым проектом), вы можете сделать это следующим образом:

<ItemGroup>
    <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
      <_Parameter1>$(MSBuildProjectName).Test</_Parameter1>
    </AssemblyAttribute>
</ItemGroup>

После этого будет сгенерирован следующий код

[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("MyProject.Test")]

внутри автоматически сгенерированного AssemblyInfo.cs (например, для конфигурации Debug и цели .NET Standard 2.0)

/obj/Debug/netstandard2.0/MyProject.AssemblyInfo.cs