web-dev-qa-db-fra.com

Visual Studio 2017 et le nouveau .csproj InternalsVisibleTo

Où dois-je placer InternalsVisibleTo depuis AssemblyInfo dans le nouveau fichier de projet Visual Studio 2017 .csproj?

34
Luka

Pour clarifier le commentaire de Hans Passant ci-dessus, il vous suffit d'ajouter InternalsVisibleTo à n'importe quel fichier cs de votre projet. Par exemple, j'ai créé un fichier AssemblyInfo.cs à la racine du projet, puis ajouté le contenu suivant (uniquement):

using System.Runtime.CompilerServices;

[Assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=<ADD_KEY_HERE>")]
26
CloudPicnic

Juste au cas où quelqu'un voudrait mettre InternalsVisibleTo dans un .csproj fichier au lieu de AssemblyInfo.cs (n scénario possible est d'avoir une convention de dénomination entre un projet sous test et un projet de test), vous pouvez le faire comme ceci:

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

Ayant cela, le code suivant sera généré

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

dans AssemblyInfo.cs généré automatiquement (par exemple pour la configuration de débogage et la cible .NET Standard 2.0)

/obj/Debug/netstandard2.0/MyProject.AssemblyInfo.cs
91
Ivan Zaruba