小编ita*_*aiy的帖子

将参考项目的依赖项添加到 NuGet 包中

我正在使用dotnet pack命令为以下场景创建 NuGet 包:

项目结构:

Project B
|----> Project A

Project A
|----> SomePackage
Run Code Online (Sandbox Code Playgroud)

我想创建一个包含ProjectB.dllProjectA.dllSomePackage作为 NuGet 包依赖项的 NuGet 包。

为了包含为 NuGet 包(而不是包依赖项)的一部分,我使用了此处ProjectA.dll建议的以下解决方案。

ProjectB.csproj

  <ProjectReference Include="ProjectA.csproj" PrivateAssets="all"/>

  <PropertyGroup>
    <TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
  </PropertyGroup>
  
  <Target Name="CopyProjectReferencesToPackage" DependsOnTargets="BuildOnlySettings;ResolveReferences">
    <ItemGroup>
      <!-- Filter out unnecessary files -->
      <_ReferenceCopyLocalPaths Include="@(ReferenceCopyLocalPaths->WithMetadataValue('ReferenceSourceTarget', 'ProjectReference')->WithMetadataValue('PrivateAssets', 'All'))"/>
    </ItemGroup>

    <!-- Print batches for debug purposes -->
    <Message Text="Batch for .nupkg: ReferenceCopyLocalPaths = @(_ReferenceCopyLocalPaths), ReferenceCopyLocalPaths.DestinationSubDirectory = %(_ReferenceCopyLocalPaths.DestinationSubDirectory) Filename = %(_ReferenceCopyLocalPaths.Filename) Extension = %(_ReferenceCopyLocalPaths.Extension)" …
Run Code Online (Sandbox Code Playgroud)

visual-studio nuget nuget-package .net-core dotnet-cli

10
推荐指数
1
解决办法
6882
查看次数

BenchmarkDotNet - 如何从类外部注入参数

我正在使用BenchmarkDotNet库进行性能检查,并且我想在使用基准类时注入参数。像这样的东西:

public class Program
{
    public static void Main()
    {
        var benchmark1 = new BenchmarkWithParameter(100);
        BenchmarkRunner.Run(benchmark1);

        var benchmark2 = new BenchmarkWithParameter(200);
        BenchmarkRunner.Run(benchmark2);
    }
}

public class BenchmarkWithParameter
{
    public BenchmarkWithParameter(int waitTime)
    {
        WaitTime = waitTime;
    }

    public int WaitTime { get; }

    [Benchmark]
    public void Run()
    {
        Thread.Sleep(WaitTime);
    }
}
Run Code Online (Sandbox Code Playgroud)

有办法实现吗?

我知道我可以使用Params,ParamsSourceArgumentsSource属性,但这意味着我需要为每个参数更改更改基准类,而不是注入不同的参数。

我的主要目标是编写一次基准测试类,并使用不同的参数多次使用它。

c# benchmarkdotnet

8
推荐指数
1
解决办法
1万
查看次数