簡體   English   中英

使用Benchmark.NET + DevArt dotConnect for PostgreSQL的許可錯誤

[英]License error using Benchmark.NET + DevArt dotConnect for PostgreSQL

我正在開發一個由多個項目組成的應用程序,並將EntityFramework與dotConnect結合使用以針對PostgreSQL運行。 我還擁有dotConnect的許可證,該許可證可在主應用程序中成功運行。

同時,我正在使用Benchmark.Net設計一個控制台應用程序(一種不同的解決方案),以測量其中一個項目的邏輯性能。 但是每次運行基准測試時,都會出現以下錯誤:

System.Reflection.TargetInvocationException:調用的目標引發了異常。 ---> System.Data.Entity.Core.EntityException:基礎提供程序在打開時失敗。 ---> Devart.Data.PostgreSql.PgSqlException:包含用於PostgreSQL許可證的嵌入式dotConnect的程序集不能與此應用程序一起使用:0f238e83-669a-46b8-876f-40331880ee79.exe.exe。

按照此說明 ,我已經通過Visual Studio生成了licenses.licx ,並通過lc.exe生成了<exe file>.licenses lc.exe 但是它仍然產生相同的錯誤。

我懷疑Benchmark.NET會生成自己的exe來運行基准測試這一事實會導致此錯誤,但我不確定100%正確。 所以我正在尋找一個解決方案,如果有人有?

謝謝

我不知道這是創建一個基准的代碼,做數據庫調用等你標桿不是代碼 ,然后,但你的整個系統 ,而不是一個好主意:文件系統,數據庫驅動程序,可互操作的東西,等等上。

這不是BenchmarkDotNet的想法。 它實際上是為基准測試相對較小的CPU任務而創建的,以發現瓶頸並根據測量結果執行優化。

但是,如果仍然要這樣做,一個解決方案可能是在創建的控制台應用程序的過程中運行基准測試,而無需生成特殊的基准測試程序集。

為此,請使用[InProcess]屬性。 只需將其應用於基准類,而不是通常的工作屬性即可:

[InProcess]
public class TypeWithBenchmarks
{
    [Benchmark]
    public void BenchmarkedMethod()
    {
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM