.net - 我可以避免 NuGet 删除私有(private)(复制本地)标签吗

标签 .net visual-studio-2017 nuget

由于我们的团队从 Visual Studio 2015 升级到 Visual Studio 2017,我们遇到了 NuGet 包的问题。每次我们更新软件包(无论是什么提要),例如MVC 更新删除了项目文件中的“Private”标签:

<Reference Include="System.Web.Mvc, Version=5.2.4.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.4\lib\net45\System.Web.Mvc.dll</HintPath>
  <Private>True</Private>
</Reference>

就我个人而言,是否将程序集复制到任何输出目录并不重要。但似乎 Visual Studio 本身存在问题,因为它在代码编辑器中出现数百个错误,尽管编译成功完成。

是否可以避免 NuGet Packet Manager 这样做?或者有没有其他解决方案?

最佳答案

Is it possible to avoid NuGet Packet Manager to do so? Or ist there any other solution?



恐怕没有这样的方法可以解决这个问题。因为这是 NuGet 的默认行为。

当我们更新 nuget 包或重新安装 nuget 包时,在卸载期间,该项目连同其所有元数据(例如,私有(private))从项目文件中删除。在安装步骤中,只有在需要时才会添加显式私有(private)元数据。因此,<Private>true</Private>如果引用的程序集无论如何都会在本地复制,则将被删除。

因此,Visual Studio 会在构建时将引用的程序集复制到 bin 目录,即使该标记已从项目文件中删除。该程序集引用上的属性检查器还显示,即使没有该标记,Visual Studio 也会继续将“复制本地”解释为“真”。

查看this thread了解更多详情。

希望这可以帮助。

关于.net - 我可以避免 NuGet 删除私有(private)(复制本地)标签吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52608585/

相关文章:

c# - 在显示之前找到 ContextMenuStrip 的高度

visual-studio-2017 - 实时单元测试排除测试

.net - 是否可以更改 NuGet 包的位置?

c# - 您是否需要处理对象并将它们设置为空?

.net - MsmqIntegrationBinding 与 NetMsmqBinding

azure - 发布到 Azure 时出错

c# - 使用 asp.net core 2.2 恢复 nuget 包时出现问题

C# 在 .NET Framework 4.6.1 中使用 Microsoft.Toolkit.Win32.UI.Controls - Web 浏览器控件升级

c# - 一项服务,两种行为配置

sql-server - 安装 Visual Studio 2017 后,我无法在 SQL Server Management Studio (SSMS) 中进行调试