Luk*_*uka 42 msbuild csproj assemblyinfo visual-studio-2017
在新的Visual Studio 2017 .csproj项目文件中从AssemblyInfo放置InternalsVisibleTo的位置?
Iva*_*uba 110
以防万一有人想放在InternalsVisibleTo一个.csproj文件而不是AssemblyInfo.cs(可能的情况是在测试项目和测试项目之间有一个命名约定),你可以这样做:
<ItemGroup>
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
<_Parameter1>$(MSBuildProjectName).Test</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
拥有此代码将生成以下代码
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("MyProject.Test")]
Run Code Online (Sandbox Code Playgroud)
内部自动生成的AssemblyInfo.cs(例如,用于调试配置和.NET Standard 2.0目标)
/obj/Debug/netstandard2.0/MyProject.AssemblyInfo.cs
Run Code Online (Sandbox Code Playgroud)
小智 28
要澄清上面的Hans Passant的评论,您只需将InternalsVisibleTo添加到项目中的任何cs文件中.例如,我在项目的根目录中创建了一个AssemblyInfo.cs文件,然后添加了以下内容(仅限):
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=<ADD_KEY_HERE>")]
Run Code Online (Sandbox Code Playgroud)
Alv*_* RC 17
从 .NET 5 开始,这实际上一旦添加到您的csproj:
<ItemGroup>
<InternalsVisibleTo Include="YourProject.Tests.Unit" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
关于此功能的工作和讨论可以在 dotnet 的 GitHub 存储库上的这个 PR上看到。
| 归档时间: |
|
| 查看次数: |
8445 次 |
| 最近记录: |