【问题标题】:Can't debug Visual Studio addin无法调试 Visual Studio 插件
【发布时间】:2013-01-26 20:01:10
【问题描述】:

问题说明了一切。我正在尝试编写一个 Visual Studio 插件(2012 年),并且实验实例总是启动而不在插件中运行任何东西。主实例中没有断点,实验实例也没有加载插件。

我应该指出:它在某个时间点工作了一两次,然后我删除了该项目,因为我认为它是错误的项目类型,但最终以相同的名称重新创建它。

再多摆弄"allowing addins to load"resetting the experimental instancecleaning the registry manually 也无法解决问题。我也试过looking for my addin dll,但它不在列表中。我完全没有想法和可能的搜索词。有什么建议吗?

【问题讨论】:

  • 这方面有什么更新吗?我也有同样的问题。

标签: visual-studio visual-studio-2012 add-in visual-studio-addins


【解决方案1】:

我遇到了与您相同的问题,并且刚刚为我找到了解决方法,它与提供的加载项项目中的新“文件属性”条目有关。

如果您打开在我的例子中名为“[App Name] - For Testing.AddIn”的文件,您将看到 XML 标记包含诸如 AddIn 友好名称、描述等内容。

对我来说,我发现我立即为我的项目重命名了输出程序集,但这不再与此属性文件中的内容匹配:

<Extensibility xmlns="http://schemas.microsoft.com/AutomationExtensibility">
<HostApplication>
    <Name>Microsoft Visual Studio</Name>
    <Version>11.0</Version>
</HostApplication>
<Addin>
    <FriendlyName>My Addin</FriendlyName>
    <Description>My Addin description.</Description>
    **<Assembly>E:\Workspaces\Scratch\MyApp\bin\MyApp.VisualStudio.Addin.dll</Assembly>
    <FullClassName>MyApp.VisualStudio.Addin.Connect</FullClassName>**
    <LoadBehavior>1</LoadBehavior>
    <CommandPreload>1</CommandPreload>
    <CommandLineSafe>0</CommandLineSafe>
</Addin>

我检查了程序集的名称和类名,修复了它们,保存文件并点击调试,一切又开始工作了!希望这会有所帮助...

【讨论】:

  • 这个难题的最后一部分是“插件 - 用于测试”文件是指向位于 Visual Studio 为加载插件而爬网的区域中的文件的链接。对于测试,这通常是 C:\Users[Username]\Documents\Visual Studio 2012\Addins[AddinName] - For Testing.AddIn
【解决方案2】:

我也遇到过类似的问题...与它斗争了很长时间,最终,完全随机地尝试向项目中添加其他配置(配置管理器)并更改框架。

这两个中的一个神奇地提供了帮助。 (我认为它可能是框架......虽然它没有意义)。

我并不是说同样的事情对你有用。

随机实验并不是真正随机的:我从网上获得了一个“可调试”插件,并比较了项目、解决方案和所有其他文件中的每个项目,以找出可能不同的地方。这是我真正的建议。

如果一切都失败了,你也可以尝试手动附加调试器,看看你是否可以通过这种方式取得进展。 [这对我不起作用,但它可能会提供有价值的信息,并且......并非所有错误都是相同的。 ]

【讨论】:

    【解决方案3】:

    似乎这个问题有不同的解决方案,但这最终帮助了我:

    1. 在 AddIn 文件中将 &lt;LoadBehavior&gt;1&lt;/LoadBehavior&gt; 更改为 &lt;LoadBehavior&gt;0&lt;/LoadBehavior&gt; 并手动将其放入 C:\Users[UserName]\Documents\Visual Studio 2012\Addins
    2. 重启 Visual Studio(我用的是 2012)

    完整的插件文件:

    <?xml version="1.0" encoding="UTF-16" standalone="no"?>
    <Extensibility xmlns="http://schemas.microsoft.com/AutomationExtensibility">
        <HostApplication>
            <Name>Microsoft Visual Studio</Name>
            <Version>11.0</Version>
        </HostApplication>
        <Addin>
            <FriendlyName>[Friendly Assembly Name]</FriendlyName>
            <Description>[Description of the Addin]</Description>
            <AboutBoxDetails>[About details]</AboutBoxDetails>
            <Assembly>[Full path to the binary e.g. C:\Test\debug\test.dll]</Assembly>
            <FullClassName>Test.Connect</FullClassName>
            <LoadBehavior>0</LoadBehavior>
            <CommandPreload>1</CommandPreload>
            <CommandLineSafe>0</CommandLineSafe>
        </Addin>
    </Extensibility>
    

    在我的情况下,我转移到另一台开发人员机器上,它以前在旧机器上工作,但在新机器上我没有任何“[Assembly Name] - For Testing.AddIn”,因为我没有麻烦检查一下。我认为 LoadBehavior 是 For Testing 和常规 AddIn 之间的区别。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题。调试一直有效,直到我关闭了 Visual Studio 的所有实例。然后我再次打开 Visual Studio,它说我一直在调试的加载项已经停止工作。当 Visual Studio 询问是否删除它时,我说是。

      显然删除此射线中的加载项会将“[AppName] - For Testing.AddIn”文件重命名为附加下划线。

      要解决此问题,请进入加载项解决方案并查看“[AppName] - For Testing.AddIn”文件中的属性。转到文件所在的文件夹。在文件系统中重命名此文件以匹配 Visual Studio 中的文件名。

      【讨论】:

        【解决方案5】:

        就我而言,Resharper 是原因。禁用 Resharper 后一切恢复正常。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-12
          • 2019-02-24
          • 2011-08-12
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多