如何在 Vsix 扩展中进行 dll 绑定重定向?

2023-11-21

我有一个 VS 扩展,它应该使用 Gmail api 向我公司的某些用户发送邮件。 在开发过程中我遇到了一个常见问题System.Net.Http.PrimitivesGoogle API 中的版本有些混乱。

The 共同解决方案因为这是把bindingRedirect在 app.config 中将所有调用重定向到新的最新版本的库。就像下面这样:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
      <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>

但是,当我的输出是 Vsix 包时,这似乎不起作用。生成的 Vsix 甚至没有 app.config。

我知道一个解决方案说要添加bindingRedirect to machine.config文件,但我的扩展被其他一些人使用,我不想强​​迫他们将东西放入他们的机器配置文件中。

还有其他解决方案吗?


这是一年多前回答的,但我找到了一种更好的方法来做到这一点ProvideBindingRedirectionAttribute。这会将绑定重定向添加到 devenv,并确定正确的版本。详情可查here,但相关部分在这里:

通过使用 ProvideBindingRedirection 属性,您可以为可扩展组件的升级安装指定绑定重定向。当您发布可扩展的 Visual Studio 组件时,此属性可以防止该组件的用户必须安装旧版本的依赖组件。如果使用 ProvideBindingRedirection 属性,则无需手动更新 exe.config 文件即可将旧程序集版本的用户重定向到新版本。 添加 ProvideBindingRedirection 程序集属性是将绑定重定向条目添加到 pkgdef 文件的一种简单方法。 pkgdef 文件用于安装扩展。

以下示例显示了 AssemblyInfo.cs 或 AssemblyInfo.vb 文件中的 ProvideBindingRedirection 条目:

[assembly: ProvideBindingRedirection(AssemblyName = "ClassLibrary1", NewVersion = "3.0.0.0", OldVersionLowerBound = "1.0.0.0", OldVersionUpperBound = "2.0.0.0")]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Vsix 扩展中进行 dll 绑定重定向? 的相关文章

随机推荐

  • DDD:聚合根

    我需要帮助来找到我的聚合根和边界 我有 3 个实体 计划 计划角色和计划培训 每个计划可以包含许多 PlannedRoles 和 PlannedTrainings 解决方案 1 起初我认为 Plan 是聚合根 因为脱离 Plan 的上下文
  • vim 中使用 powershell 的 system()

    我正在尝试在 Vim 中编写一个简单的函数来返回 powershell 命令的结果 不过 我的结果总是乱七八糟 我认为这可能是一个编码问题 但正如您所看到的 这个问题很奇怪 因为它 有点有效 但我没有任何解决问题的办法 在 vim 中设置以
  • 警报对话框或自定义警报对话框的大小

    我正在为 10 1 的所有平板电脑创建应用程序 现在我正在三星 Galaxy 选项卡上尝试此操作 我已经完成了所有部分 但关于平板电脑尺寸的警报对话框太小 我还创建了自定义警报对话框 但看起来不太好 那么告诉我我可以更改默认警报对话框的大小
  • 当 AutoGenerateColumns 设置为 True 时,如何停止在 DataGrid 中生成特定列?

    我已将 ObservableCollection 绑定到DataGrid并设置AutoGenerateColumns在具有 MVVM 应用程序的 WPF 中为 true 那我该怎么办stop a specific column要出现在 Da
  • 如何在 C# 中每隔几秒调用一个特定方法?

    机器人游戏 是我开发的第一个基础游戏 洋红色 角色是敌人 它应该在这张地图中随机移动 但它的随机移动太快 我尝试使用线程 但它会影响所有角色的速度 现在 我需要每 100 毫秒调用一次 Enemy 方法 Robot game Image 您
  • 如果我在存储过程中有多个 select 语句,如何使用 SqlDataReader

    我在 Microsoft SQL Server 2005 的存储过程中编写了三个 select 语句 两个 select 语句都返回多个记录 并且 select 语句的表列表不同 一个从主表中选择记录 另一个从子表中选择记录 在 C 代码中
  • 我该如何写上标文字?

    我有一个应用程序 其中包含大量上标数字或字母 我注意到 X span 3 span and just using sup tag around the figure 3 both yield X3 in my app But only th
  • 更改 ListView 背景 - 奇怪的行为

    我在更改 ListView 中视图的背景时遇到问题 我需要的 onClick 更改一行的背景图片 实际发生的情况 按下例如后 背景会发生变化 选择 第一个条目 但向下滚动后 第 8 个条目也被选中 滚动回到顶部 第一个不再被选择 现在选择第
  • 如何为ASP.NET身份设置密码规则?

    在我的 ASP NET 应用程序中 我在 web config 的 DefaultMembershipProvider 和 SqlMembershipProvider 中有以下设置 enablePasswordRetrieval true
  • 有符号整数溢出在 C++ 中仍然是未定义的行为吗?

    据我们所知 有符号整数溢出是未定义的行为 但C 11中有一些有趣的东西cstdint文档 有符号整数类型 宽度分别为 8 16 32 和 64 位 没有填充位 使用 2 的补码表示负值 仅当实现直接支持该类型时提供 See link 这是我
  • Java(JAXP)DocumentBuilder的XML解析差异

    之间有什么区别吗 DocumentBuilder parse InputStream and DocumentBuilder parse InputSource 我只能发现 对于第一种情况 解析器从流中检测编码 因此它更安全 而在后者中我不
  • 如何在后台使用 Flutter Method Channel(应用程序最小化/关闭)

    我正在 Flutter 应用程序中开发原生 Android 小部件 其中有刷新按钮 单击该按钮时我必须调用 Flutter 代码中的方法 我使用 Flutter Method Channel 进行通信 当应用程序位于前台时它工作正常 但当应
  • 无需 gcloud 客户端即可访问 google 容器注册表

    我有一个 CoreOS docker 主机 我想在其上开始运行容器 但是当尝试使用 docker 命令从 google 容器私有注册表中获取映像时 https cloud google com tools container registr
  • 在 Common Lisp 中,如何定义通用数据类型说明符(如整数列表)?

    我想定义一个类型说明符来描述相同类型的事物列表 所以我想有 list of integer 如同 array integer 这是内置的 我可以为特定类型创建它 如下所示 defun elements are integer seq eve
  • Moshi 判断 JSON 是数组还是单个对象

    有没有办法设置 Moshiadapter自动创建一个Object or List基于 JSON 响应 目前 我可以明确地做到这一点 例如 我可以收到以下回复 userId 1 id 2 body body title title Or us
  • 通过反射订阅任何事件类型的操作

    考虑 someControl Click delegate Foo 该事件的论点是无关紧要的 我不需要它们 我对它们不感兴趣 我只想调用 Foo 没有明显的方法可以通过反射来做同样的事情 我想将上面的内容翻译成类似的内容 void Foo
  • Servlet 过滤器包装器 - 更改内容类型时遇到问题

    我有 RESTful Web 服务 由 javascript 使用 该服务返回 application json 内容类型 但是 对于 IE 内容类型必须是 text html 因此 我编写了一个过滤器和包装器 以在检测到 IE 作为客户端
  • 链接器找不到符号,但已读取库并且符号存在

    我一直在尝试编译我的项目 并且得到了undefined reference错误 例如 installertest cpp text 0x9d1 undefined reference to XmlRpcValue makeArray ins
  • 有没有比字符串操作更好的替代方案来以编程方式构建公式?

    其他人的函数似乎都采用公式对象 然后在内心深处对它们进行黑暗魔法 我很嫉妒 我正在编写一个适合多个模型的函数 这些模型的部分公式保持不变 部分公式从一个模型到下一个模型有所变化 笨拙的方法是让用户将公式部分作为字符串输入 对它们进行一些字符
  • 如何在 Vsix 扩展中进行 dll 绑定重定向?

    我有一个 VS 扩展 它应该使用 Gmail api 向我公司的某些用户发送邮件 在开发过程中我遇到了一个常见问题System Net Http PrimitivesGoogle API 中的版本有些混乱 The 共同解决方案因为这是把bi