【问题标题】:VS Workflow designer not expanding activitiesVS 工作流设计器不扩展活动
【发布时间】:2012-01-16 21:03:46
【问题描述】:

我不明白为什么 WF 设计器中的某些活动没有展开。

查看 WizardActivityPack 活动的示例文档:

但是当我尝试在 Visual Studio 2010 的 WF 设计器中打开同一个文件时:

如果我使用 XML 编辑器查看文件,我可以看到所有活动都在文件中,但设计器只显示一个框,我无法单击或展开它。

【问题讨论】:

  • 您是在尝试运行示例,还是在使用 dll(wap.dll、wap.design.dll)?如果您使用的是二进制文件,则必须将 .design.dll 放在 Visual Studio 可以找到的位置。就像在程序文件下的 PublicAssemblies 目录中一样。 VS 按惯例寻找设计师;如果活动在 Activity.dll 中,VS 会在 programfiles/vs 或 GAC 中查找 Activity.Design.dll(我相信)(此外,在创建自己的活动/设计器时了解这一点很重要!)
  • 下载解压code.msdn.microsoft.com/Windows-Workflow-233b5e3c,直接打开解决方案文件。
  • 谢谢 Will,我将 Design.dll 复制到了其他项目的 bin 文件夹中,现在我可以正常看到所有内容了。
  • 我不想添加答案,因为我不确定您是如何使用它的。添加了更详细的答案。

标签: visual-studio-2010 workflow-foundation-4


【解决方案1】:

您必须将 *.design.dll 放在 Visual Studio 可以找到的位置。 就像在 %programfiles(x86)%\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies。

VS 按惯例寻找设计师;如果活动位于名为 Activity.dll 的程序集中,VS 会在 VS 的代码库(和子目录)或(我相信)GAC 中的名为 Activity.Design.dll 的程序集中查找其设计类。

在创建自己的活动/设计师时,了解这一事实很重要!这背后的原因是您的 Activity 程序集不需要引用 Designers dll;您可以将 Activity 程序集单独交付到生产环境,同时将 Designers dll 留在设计机器上。

(如果您从活动程序集中引用 *.Design.dll,或者如果它们存在于同一个程序集中,则不适用。推荐的模式是将两者分开并允许 VS 通过约定加载它们。对于这方面的例子,见this sample。)

【讨论】:

    【解决方案2】:

    添加这一行 新的 DesignerMetadata().Register(); 到 WPF 演示文稿

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-31
      • 2016-08-21
      相关资源
      最近更新 更多