![](/img/trans.png)
[英]System.MissingMethodException after adding an optional parameter
[英]System.MissingMethodException after adding a project reference (without using the reference)
我遇到了一個我無法解釋的奇怪錯誤。 我有一個 .NET 6 class 庫項目(A),它具有 function:
public async Task ImportDeliveries()
{
try
{
var csvFileProcessor = new CsvFileProcessor();
await csvFileProcessor.ProcessAllAsync(_DeliveryImporter.ImportAsync).ConfigureAwait(true);
}
catch (Exception ex)
{
_TelemetryClient.TrackException(ex);
}
}
它工作正常。 但是,只要我將另一個 .NET 6 class 庫(B)的項目引用添加到項目中,而不更改任何其他內容,function
await csvFileProcessor.ProcessAllAsync(_DeliveryImporter.ImportAsync).ConfigureAwait(true);
失敗並拋出以下異常:
System.MissingMethodException:'找不到方法:'System.Threading.Tasks.Task BlobStorageHelper.BlobStorageFolder.MoveAsync(Microsoft.Azure.Storage.Blob.CloudBlockBlob,BlobStorageHelper.BlobStorageFolder)'。
這可能是因為 (B) 包含某些 nuget 包嗎? 這種行為對我來說非常違反直覺,我不知道從哪里開始尋找。
這可能是由以下原因引起的:
CsvFileProcessor
和BlobStorageHelper.BlobStorageFolder
(后者也可以是傳遞依賴項 D)。System.Threading.Tasks.Task BlobStorageHelper.BlobStorageFolder.MoveAsync(Microsoft.Azure.Storage.Blob.CloudBlockBlob, BlobStorageHelper.BlobStorageFolder)
因此錯誤。
要點:更改簽名或返回類型會破壞 ABI(應用程序二進制接口),需要更新主要版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.