gpt4 book ai didi

visual-studio-2015 - VSIX 扩展 - 如何确保引用的 dll 或程序集包含在 VSIX 文件中?

转载 作者:行者123 更新时间:2023-12-04 14:55:33 26 4
gpt4 key购买 nike

当用户安装我的扩展程序但未安装最新的 Visual Studio 更新时,扩展程序无法解析 Microsoft.CodeAnalysis.CSharp.dll 带有以下消息:

Could not load file or assembly 'Microsoft.CodeAnalysis.CSharp, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.



我确保扩展确实引用了这个程序集,它确实引用了这个程序集,但是为什么这个程序集会被排除在 VSIX 文件之外?

我将 VSIX 文件重命名为 ZIP 文件,查看了内容,但并未提供此程序集,即使 VSIX 文件中包含其他“Microsoft.CodeAnalysis.*.dll”程序集。

我还确认引用中的“ Copy Local ”属性为 True。

最佳答案

我找到了这个问题的解决方案,我可以看到现在包含在 VSIX 中的 dll,并且用户确认它对他有用。

  • 在 Visual Studio 中,打开扩展解决方案,
  • 双击 .vsixmanifest 文件
  • 打开“ Assets ”选项卡
  • 点击“新建”
  • 将类型设置为“Microsoft.VisualStudio.Assembly”
  • 将源设置为“文件系统上的文件”
  • 单击“浏览”将 Path 设置为您的 dll,(不要担心引用不会添加为绝对路径,而是添加为相对路径或只是强程序集名称)
  • 您可以将“嵌入此文件夹”留空。
  • 点击确定
  • 重新生成解决方案,该文件现在应该在 VSIX 文件中。

  • enter image description here

    然后将此行添加到 vsixmanifest 文件中:
    <Asset Type="Microsoft.VisualStudio.Assembly" d:Source="File" Path="Microsoft.CodeAnalysis.CSharp.dll" AssemblyName="Microsoft.CodeAnalysis.CSharp, Version=1.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

    关于visual-studio-2015 - VSIX 扩展 - 如何确保引用的 dll 或程序集包含在 VSIX 文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42201923/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com