无法调试Visual Studio插件

时间:2013-01-26 20:01:11

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

问题说明了一切。我试图编写一个Visual Studio插件(2012),实验实例总是在没有运行插件的情况下启动。在主实例中没有命中断点,实验实例也没有加载插件。

我应该指出:它曾经一次或两次工作过,然后我删除了项目,因为我认为这是一个错误的项目,但最终用相同的名称重新创建它。

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

5 个答案:

答案 0 :(得分:3)

我遇到了和你一样的问题,并且刚刚发现了我的修复程序,它与提供的附加项目中的新“文件属性”条目有关。

如果你打开这个名为“[App Name] - For Testing.AddIn”的文件,你会看到包含AddIn友好名称,描述e.t.c等内容的XML标记。

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

<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>

我检查了程序集的名称,并修改了类名,保存文件并点击调试,这一切都重新开始了!希望这会有所帮助...

答案 1 :(得分:1)

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

其中一人神奇地帮助了他们。 (我认为这可能是框架......虽然没有意义)。

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

随机实验并不是随机的:我得到了一个&#34;可调试的&#34; Web上的加载项,并比较项目,解决方案和所有其他文件中的每个项目,以找出可能不同的内容。这是我的真实建议。

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

答案 2 :(得分:1)

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

  1. 将AddIn文件中的<LoadBehavior>1</LoadBehavior>更改为<LoadBehavior>0</LoadBehavior>,并将其手动放入 C:\ Users [UserName] \ Documents \ Visual Studio 2012 \ Addins
  2. 重新启动Visual Studio(我使用2012)
  3. 完成AddIn-file:

    <?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>
    

    在我的情况下,我转移到一台不同的开发者机器,它以前在旧机器上工作,但在新机器上我没有任何'[程序集名称] - 用于Testing.AddIn',因为我没有麻烦来检查它。我认为LoadBehavior是 For Testing 和常规AddIn之间的区别。

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:0)

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