.NET CORE ALINK:警告AL1073:引用的程序集“mscorlib.dll”针对其他处理器 - c#

我正在使用VS2019和.NET CORE 2.2我收到警告AL1073

ALINK警告AL1073:引用的程序集“ mscorlib.dll”针对其他处理器

我知道这与问题很接近:ALINK : warning AL1073: Referenced assembly 'mscorlib.dll' targets a different processor

但:

我在.NET CORE 2.2上而不在4.x上
此处提出的解决方案不适用于.NET Core

特别是尝试添加:

<PropertyGroup> 
<TargetFrameworkSDKToolsDirectory Condition=" '$(PlatformTarget)' == 'x64'">$(TargetFrameworkSDKToolsDirectory)\$(PlatformTarget)\
</TargetFrameworkSDKToolsDirectory>
</PropertyGroup>

发出另一个警告

警告MSB3084任务试图在两个位置中找到“ al.exe”。 1)在基于SdkToolsPath生成的“ \ x64 \”处理器特定目录下。2)在“ \ x64 \”下由SDKToolsPath属性指定的x86特定目录。您可以通过执行以下任一操作来解决此问题:1)将“ SDKToolsPath”属性设置为Microsoft Windows SDK的位置。 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Current \ Bin \ Microsoft.Common.CurrentVersion.targets

真的很奇怪,因为根据警告,位置相同!

另外:我很乐意在构建设置中禁止显示警告,因为我的所有单元测试都通过了,但是将1073添加到列表对仍然显示的AL1073警告没有影响。

或者,警告提示:将“ SDKToolsPath”属性设置为Microsoft Windows SDK的位置,该怎么办?

更新以回答评论:这很难在简单的设置中重现。该项目特别引用了多个Github项目(fo-dicom)。 fo-dicom库使用为32和64个平台构建的映像库。我确实尝试设置为64位,但没有帮助。我看到其他人在VS社区提出了一个错误,即警告的抑制似乎有问题:https://developercommunity.visualstudio.com/content/problem/224196/suppress-warnings-from-project-settings-build-does.html。该问题已关闭,没有后续行动,MSFT表示将不会修复AL 1073,但我想禁用它!使用持续集成时不能有警告...

我现在正在尝试重新编译.NET CORE 3.0中的所有内容,如果可以的话将提供更新。

更新:在.NET CORE 3.0中重新编译后,我仍然遇到问题。

我还发现了这个问题的另一个原因(在其他SO文章中也提到了该问题,但对于.NET4.x。确实,我看到该问题也与资源文件有关,但是对于.NET Core,我们看不到“生成卫星程序集”消息,因此很难将编译器警告链接到资源文件的生成。

为了解决该问题,我将al.exe文件从C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.8 Tools \ x64复制到我的解决方案中,并添加到Tools64中,并将以下内容添加到我的.csproj

<PropertyGroup>
  <TargetFrameworkSDKToolsDirectory>..\Tools64</TargetFrameworkSDKToolsDirectory>
  </PropertyGroup>

直接将SDKToolsDirectory设置为原始位置无效。在我使用devops构建服务器进行持续集成的情况下,额外使用绝对路径将不会(路径可能不同)。本地复制al.exe工具似乎是可以接受的解决方案。

参考方案

我能够解决问题,就我而言,我似乎需要两件事:

根据gofal3的建议,我引用了.NET核心fo-dicom软件包和fo-dicom依赖项(但未引用fo-dicom桌面)。
似乎我对Microsoft.ServiceFabric有旧的引用,似乎该引用需要64位,否则我们会收到警告(Azure Service Fabric 32 bit support)

兰斯:我尝试过在博客中删除建议,以消除警告,但这对我来说没有帮助。请注意,从警告中我得到的路径是相同的。

ASP.NET Core Singleton实例与瞬态实例的性能 - c#

在ASP.NET Core依赖注入中,我只是想知道注册Singleton实例是否会比注册Transient实例更好地提高性能?在我看来,对于Singleton实例,创建新对象和相关对象只需花费一次时间。对于Transient实例,此成本将针对每个服务请求重复。因此Singleton似乎更好。但是,在Singleton上使用Transient时,我们可以获得多…

如何在ASP.NET Core Web应用程序中增加JSON反序列化MaxDepth限制 - c#

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。当他们进行此调用时,我们将输出以下日志并返回错误: 读取器的MaxDepth超过了32。路径“ super.long.path.to property”,第1行,位置42111。”我浏览了…

ASP.NET Core-在Singleton注入上存储库依赖项注入失败 - c#

我正在使用SoapCore为我的ASP.NET Core MVC应用程序创建Web服务。我正在使用Entity Framework Core和简单的存储库模式来获取我的数据库数据。我通过Startup.cs中的.AddSingleton()注入存储库类:services.AddSingleton<IImportRepository, ImportRep…

为什么.NET Core API中的POST参数总是为null - c#

我创建了一个简单的.NET核心控制器,并尝试从Angular查询它。问题在于,每当我向登录操作发送发布请求时,我总是会收到空参数!不过,很奇怪的是,在进行调查时,请求正文/有效负载清楚地显示了我的参数已设置。有关我的意思的示例,请参见我的屏幕截图。我已经尽了最大的努力,并且在过去的几个小时中一直在阅读类似的问题,但是没有取得任何成功?所以我的问题是:是什么导…

如何在ASP.NET Core(使用JavascriptService)应用程序中使Node.js代码调用csharp代码? - c#

我正在将asp.net内核用于简单的Web api服务器(实际上是使用Deepstream)。虽然C#可以使用NodeServices.InvokeExportAsync完美地调用nodejs代码,但是当我尝试将Action / Func作为NodeServices.InvokeExportAsync的参数传递给nodejs时,却得到了System.Aggr…