【问题标题】:How do I generate binding redirects when using Nuget.VisualStudio to install a NuGet package?使用 Nuget.VisualStudio 安装 NuGet 包时如何生成绑定重定向?
【发布时间】:2017-09-21 16:46:38
【问题描述】:

我正在编写一个需要将 NuGet 包添加到项目的 VS 扩展。我正在使用here 建议的接口,特别是IVsPackageInstaller.InstallPackage(string, Project, string, string, bool) 方法。包安装得很好,并且 packages.config 更改为包含相关版本 - 但是没有创建安装 NuGet 包时通常生成的绑定重定向。

是否有一种“正确”的方式来做到这一点(即调用一个可公开访问的 API),或者只是一种“自己动手”的方式,可以像 XML 一样有效地修改 app.config?

【问题讨论】:

    标签: c# .net nuget vsx


    【解决方案1】:

    绑定重定向在项目级别工作,我们经常在项目文件或.config文件中绑定重定向,这些都是为项目工作的。

    并且在 NuGet API 中,它不提供修改项目文件和项目配置文件的方法。它只更改 packages.config 文件,该文件仅适用于 NuGet 包。

    有两种方法可以实现绑定重定向。一种是修改 app.config 如您所述。另一种方法是在代码中绑定重定向。你可以参考下面的代码。

    SideBySide Error with Binding Redirect in .net Windows Service

    【讨论】:

    • 这有点误导 - NuGet API 更改了 packages.config - 但也添加了对项目的引用。而且我理解它是如何工作的——但这是一个 VS 扩展——所以我要使用 AssemblyResolve 处理程序重定向代码中的绑定,我必须生成一些代码并将其添加到正在构建的项目中——这可能不那么简单而不是简单地修改 app.config。
    • Nuget API 只提供项目中的安装、删除包。并且安装/删除过程将在项目中添加/删除引用,从而导致项目文件发生更改。但它只引用相应的程序集。版本不同时不重定向。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 2014-12-29
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    相关资源
    最近更新 更多