Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何调试基于IWizard的项目模板_Visual Studio_Debugging_Project Template - Fatal编程技术网

Visual studio 如何调试基于IWizard的项目模板

Visual studio 如何调试基于IWizard的项目模板,visual-studio,debugging,project-template,Visual Studio,Debugging,Project Template,我已使用导出了Visual Studio模板。该模板需要一些用户输入,因此我添加了一个向导程序集,该程序集将按其应该的方式调用,除了一些次要的事情,因此我需要进行调试 我发现了一个关于如何在中调试的相当容易理解的摘要,但无法使其按所述工作。以下是我所做的: 在向导项目中(VS以管理员身份运行) 在向导的ProjectFinishedGenerating方法中设置断点 将项目设置->生成->输出路径设置为 ProgramFiles\Microsoft Visual Studio 10.0\Comm

我已使用导出了Visual Studio模板。该模板需要一些用户输入,因此我添加了一个向导程序集,该程序集将按其应该的方式调用,除了一些次要的事情,因此我需要进行调试

我发现了一个关于如何在中调试的相当容易理解的摘要,但无法使其按所述工作。以下是我所做的:

在向导项目中(VS以管理员身份运行)

  • 在向导的
    ProjectFinishedGenerating
    方法中设置断点
  • 将项目设置->生成->输出路径设置为

    ProgramFiles\Microsoft Visual Studio 10.0\Common7\IDE\PrivateSassemblies\

  • 将项目设置->调试->启动操作设置为外部程序(Visual Studio 2010)

  • 按F5启动调试器
  • 此时,正如预期的那样,一个新的VS2010实例打开了,但没有加载任何内容。所以,无论我的断点设置在哪里,它们都不会被击中。我想这可以追溯到VSIX模板包含自己的向导DLL副本,没有PDB,因此可能无法使用VSIX进行调试

    我已经尝试以MSDN文章中描述的方式来实现这一点,方法是以常规方式导出模板(作为ZIP),然后在ZIP中修改VSTemplate以引用向导程序集,但我得到的只是一条错误消息,表明无法找到向导dll(甚至在将其添加到GAC之后)。是的,它有强烈的名字和签名


    有人能告诉我一个可以帮助我调试IWizard实现的方向吗?

    我用向导调试项目模板的方法如下

    创建包含VSIX项目的解决方案。将项目添加到解决方案中;向解决方案中添加一个类库,该类库将成为IWizard。将VSIX项目设置为启动

    现在在一个相对较近的路径上创建一个新的解决方案。添加一个控制台应用程序,它将成为调试解决方案

    在VSIX解决方案的“属性”页面中,指向“调试”选项卡,使用命令行devenv.exe/rootsuffix exp..\Debug.sln或类似命令启动到另一个devenv.exe副本。现在,当您点击F5时,Exp Int将启动,您可以在向导类库中使用断点将项模板添加到debug.sln

    现在,您将引用一个项目模板。您可以将这篇文章改编为这篇文章,或者使用项目模板作为测试工具,以实现您在项目模板上要实现的目标

    如果您需要一个如何设置的示例,请使用DSL语言模板,选择MinLang并查看已创建的内容。您将看到一个DSL项目,一个DSL包,它是VSIX,在磁盘上是调试解决方案

    我在VS2012中这样做,这可能比VS2010有所改进。我已删除VS2010,因此无法检查