【问题标题】:VSIX extension - Change Path of DLLVSIX 扩展 - 更改 DLL 的路径
【发布时间】:2018-08-22 09:27:33
【问题描述】:

我已经使用 Visual Studio 2013 创建了一个 Visual Studio 扩展 (VSIX)。 在这个扩展中,我引用了我创建的另一个类库 (DLL)。

安装扩展后,该DLL会正确放置在扩展文件夹中 扩展文件夹是 C:\Users\username\AppData\Local\Microsoft\VisualStudio\12.0\Extensions\1oqfh4o4.2y5\

但我在 Visual Studio 的安装目录中也需要这个 dll -> C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE

如果我不将 dll 复制到 Visual Studio 文件夹中,则会收到扩展程序找不到 dll 的异常。

是否可以将dll的路径更改为扩展文件夹? 是否可以将 dll 直接包含到 VSIX 中?

我尝试使用“source.extension.vsixmanifest”中的“资产”,但它仍然无法正常工作。

外部库“System.Windows.Interactivity.dll”也有同样的问题

谢谢,菲尔

【问题讨论】:

    标签: c# visual-studio visual-studio-extensions vsix


    【解决方案1】:

    是否可以将 dll 直接包含到 VSIX 中?

    是的,但您应该确保 dll 是可再分发的。

    • 将 dll 作为文件添加到您的扩展项目中,而不是 参考(添加->现有项目)。
    • 在“属性”窗口中将其属性“Build action”设置为Content
    • 在“属性”窗口中将其属性“Include in VSIX”设置为True

    然后构建扩展项目,可以查看.vsix文件中的dll文件(将.vsix文件重命名为.vsix.zip文件并打开查看)。

    【讨论】:

    • 我试过了,但我仍然需要 Visual Studio 文件夹中的 dll。 dll 位于扩展文件夹中(如果我只是使用引用),所以我不需要将它包含在 VSIX 中。我不知道为什么它需要 Visual Studio 文件夹中引用的 dll。为什么扩展使用 Visual Studio 文件夹中的 dll 而不是扩展文件夹中的 dll?
    • @Phil,正如你所说,你已经添加了引用,但它仍然从 VS 文件夹中找到 dll 文件,一个可能的原因是这个 dll 文件是来自其他程序集的依赖 dll,你需要检查您是否忘记安装某些包,例如,System.Windows.Interactivity.dll 包含在 blend SDK 中:stackoverflow.com/questions/8360209/…,或者您可以将它们部署到 GAC:stackoverflow.com/questions/13674782/…
    • @Phil,欢迎您,如果对您有帮助,我会将其发布为答案。如果没有,请随时告诉我,以便我们一起讨论。祝你有美好的一天:)
    猜你喜欢
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2012-05-21
    • 1970-01-01
    相关资源
    最近更新 更多