web-dev-qa-db-ja.com

Visual Studio 2017および新しい.csproj InternalsVisibleTo

新しいVisual Studio 2017 .csprojプロジェクトファイルのAssemblyInfoからInternalsVisibleToを配置する場所

34
Luka

上記のHans Passantのコメントを明確にするには、InternalsVisibleToをプロジェクト内のcsファイルに追加するだけです。たとえば、プロジェクトのルートにAssemblyInfo.csファイルを作成し、次のコンテンツ(のみ)を追加しました。

using System.Runtime.CompilerServices;

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

誰かが.csprojの代わりにAssemblyInfo.csファイル内にInternalsVisibleToを配置したい場合に備えて(可能なシナリオは、テスト中のプロジェクトとテストプロジェクト)、次のようにできます:

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

これにより、次のコードが生成されます

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

自動生成されたAssemblyInfo.cs内(例:デバッグ構成および.NET Standard 2.0ターゲット用)

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