Visual Studio强制在引用程序集中使用System.Net.Http,而不是在Nuget中指定的System.Net.Http

t9aqgxwy  于 2022-12-01  发布在  .NET
关注(0)|答案(1)|浏览(301)

我在我的项目中引用System .NET.Http作为核心包,在packages.config和.csproj文件中引用是正确的,但是在Visual Studio属性选项卡中它总是使用系统的引用程序集路径中的包,有人知道为什么吗?
另一件奇怪的事情是这个文件在构建<webproj>\bin\roslyn有另一个版本,似乎它不使用dll文件既不在nuget也不在参考汇编。
而实际上nuget包中的System.Net.Http.dll,在引用程序集中,在构建的<webproj>\bin\roslyn目录中都有不同的版本,<webproj>\bin\roslyn中的文件似乎使用了Visual Studio目录中的文件(C:\Program Files(x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\aqwf5fqp.2lv\System.Net.Http.dllC:\Program Files(x86)\Microsoft SDK\NuGetPackages\system.net.http\4.3.0\runtimes\win\lib\net46\System.Net.Http.dllC:\Program Files(x86)\Microsoft SDK\NuGetPackages\system.net.http\4.3.0\lib\net46\System.Net.Http.dll,根据其版本和文件大小判断)
| dll在不同路径中|程序集版本|
| - -|- -|
| nuget中的dll,软件包版本4.3.4| 4.1.1.3|
| 引用程序集中的dll(也称为在VS属性选项卡中引用)|4.2.0.0|
| dll在建置的<webproj>\bin\roslyn目录中|4.1.1.0|
在软件包中。config <package id="System.Net.Http" version="4.3.4" targetFramework="net472" />
在csproj中

<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\lib\Nugets\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
      <Private>True</Private>
    </Reference>

在“属性”选项卡中x1c 0d1x
我想强制VS(属性选项卡)或bin\roslyn中的文件使用nuget包中的dll,请问怎么做?谢谢。

pjngdqdw

pjngdqdw1#

您可以尝试Migrate from packages.config to PackageReference
这可以帮助您在一个位置管理所有项目依赖项:就像项目到项目的引用和程序集引用一样,NuGet包引用(使用PackageReference节点)直接在项目文件中管理,而不是使用单独的packages.config文件。

相关问题