【问题标题】:Visual stuio template parameters not returning values?Visual Studio 模板参数不返回值?
【发布时间】:2015-04-19 16:27:29
【问题描述】:

我在创建 Visual Studio 模板时尝试获取这些参数,但它没有返回值,它只是保持这样的状态:

string rootnamespace = $rootnamespace$; // this is the output, it just stays as it was declared
string SpecificSolutionName = $SpecificSolutionName$; // this is the output, it just stays as it was declared

根据msdn - Template Parameters

具体解决方案名称: 解决方案的名称。选中“创建解决方案目录”时,SpecificSolutionName 具有解决方案名称。未勾选“创建解决方案目录”时,SpecificSolutionName为空。

我确保“创建解决方案目录”被选中,但它仍然没有给出任何价值。

我怎样才能得到这些值。请...?

【问题讨论】:

    标签: visual-studio-templates


    【解决方案1】:

    我还发现 $SpecificSolutionName$ 已损坏。作为一种变通方法,解决方案的目录通常与解决方案的名称相同,因此:

    • 如果您的解决方案模板只有 1 个项目:解决方案和项目名称相同,因此您可以简单地使用 $projectname$ 代替损坏的 $SpecificSolutionName$。

    • 如果您的解决方案模板有多个项目(也称为 ProjectCollection):将属性 CopyParameters="true" 添加到所需的 ProjectTemplateLink 元素并使用 $ext_projectname$ 代替损坏的 $SpecificSolutionName$。

    【讨论】:

    【解决方案2】:

    我认为关于多项目模板的文档不够清晰。将向导声明放在多项目定义的 vstemplate 中,以及您希望使用的项目上,会出现“损坏的”变量。 这是因为,它会在您每次声明它时启动向导,可以说,它的行为会根据上下文而有所不同。 注意:变量$SpecificSolutionName$只有在多项目vstemplate声明第一次执行时才有值,并且只执行RunStartedProjectFinishedGeneratingRunFinished方法。因此,要在全局上下文中使用它,您需要找出某种机制来维持向导执行之间的值,例如在 replacementsDictionary 或其他内容中添加新键。 希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      我通过将此 doctype 声明添加到我的 .vstemplate 的开头来解决此问题。

      <?xml version="1.0" encoding="utf-8"?>
      

      模板向导不提供 doctype 声明,但存在于所有预安装的模板中。祝您好运,感谢您在我研究这个问题时的耐心等待。

      【讨论】:

      • 这不适用于 VS 2015 ProjectCollection 模板
      【解决方案4】:

      $SpecificSolutionName$ is always empty. How can I tell if the user is making a new solution directory or not?

      令人沮丧的是,文档有两个错误。

      1. 没有“SpecificSolutionName”。它是“SpecifiedSolutionName”

      2. 如果用户取消勾选“为解决方案创建目录”,则 $SpecifiedSolutionName$ 不是如上所述的空白;它实际上与 $projectname$ 相同。如何确定这种情况何时发生或未发生,以及您正在阅读的内容是否是唯一解决方案文件夹的名称,则是另一回事。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-06
        • 2022-09-23
        • 2022-01-07
        相关资源
        最近更新 更多