fri*_*gle 5 .net-assembly visual-studio nuget .net-core visual-studio-2017
我有一个正在开发的公共库。我们称之为 My.Common。
My.Common 的版本 1 已上传到我的 Intranet Nuget 服务器,并在其他几个库中使用,例如 My.Logging 和 My.Navigation。
在开发通过 Nuget 使用 My.Common、My.Logging 和 My.Navigation 的 .Net Core 应用程序时,我发现了 My.Common 中的一个错误。因此,我需要修复版本 2 的 My.Common。该错误影响应用程序直接使用的功能 - 它对其他库没有影响,它们可以继续使用版本 1。
我打开 My.Common 的代码,尝试修复并编译。在应用程序中,我删除了 My.Common 的 Nuget 包,并在其 bin 文件夹中添加了对 My.Common DLL 的引用。
这时我发现我在应用程序中没有看到 My.Common 的更改。在 My.Common 的“属性”窗口中,路径显示为:
C:\Users\foo\.nuget\packages\my.common\1.0.0\lib\netcoreapp2.0\My.Common.dll
Run Code Online (Sandbox Code Playgroud)
以下是 .csproj 中的引用的外观:
<ItemGroup>
<Reference Include="My.Common">
<HintPath>C:\Projects\My.Common\bin\Debug\netcoreapp2.0\My.Common.dll</HintPath>
</Reference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
尽管我已将其添加为程序集引用,但它正在被覆盖并从其 Nuget 包中提供!
由于程序集和 Nuget 包有不同的版本,我想我可以通过更明确地了解版本来解决这个问题。
<ItemGroup>
<Reference Include="My.Common, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null">
<HintPath>C:\Projects\My.Common\bin\Debug\netcoreapp2.0\My.Common.dll</HintPath>
<SpecificVersion>true</SpecificVersion>
</Reference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
当设置为 true 时,Visual Studio 似乎根本无法找到程序集 - 属性中的路径为空,并且应用程序填充“(您是否缺少程序集引用?)”错误。
我需要获取 My.Logging 和 My.Navigation 的本地副本,用程序集引用替换它们的 My.Common Nuget 包,编译,然后用程序集引用替换原始应用程序中的所有 Nuget 包,这似乎很极端。
我该怎么做才能让 Visual Studio 真正使用本地程序集引用?
归档时间: |
|
查看次数: |
3012 次 |
最近记录: |