【问题标题】:Using $safeitemname$ in VS2012 Item Template causes value to appear as inheriting class also在 VS2012 项目模板中使用 $safeitemname$ 会导致值也显示为继承类
【发布时间】:2013-09-18 02:40:25
【问题描述】:

在我的模板文件中,我使用safeitemname 模板变量来定义我的类名。项目模板旨在创建一个子类MXApplication。导出模板并利用它创建新类后的结果本质上是类继承自自身。如果我尝试向类中添加命名空间,我只会在替换 safeitemname 的值之前添加命名空间前缀。

这里是 Template 类(为了解释而修剪):

namespace $rootnamespace$
{
  public class $safeitemname$ : MonoCross.Navigation.MXApplication
  {
    public override void OnAppLoad()
    {
        //Do the work
    }
  }
}



我使用模板创建MyApp时的结果是:

namespace MyNameSpace
{
  public class MyApp : MonoCross.Navigation.MyApp
  {
    public override void OnAppLoad()
    {
        //Do the work
    }
  }
}

我尝试使用 VS2012(和 VS2013)导出此模板。

任何建议将不胜感激。我一直在尝试在 Visual Studio 2012 中更新我的项目模板(它们在 2010 年工作),但我一直遇到这个问题。我已经在我现有的几个模板上进行了尝试;甚至尝试重新创建 .csproj 并将我现有的模板添加到使用 Visual Studio 2012 创建的 .csprog 文件中。我所有的尝试都会导致相同的类继承问题。

这是我一直用作参考的 MSDN Doc: http://msdn.microsoft.com/en-us/library/vstudio/tsyyf0yh.aspx

【问题讨论】:

    标签: visual-studio-2012


    【解决方案1】:

    查看由导出模板命令创建的 .zip 文件时,该问题很明显。包含在模板 .zip 中的 .cs 文件如下:

    namespace $rootnamespace$
    {
      class $safeitemname$ :  MonoCross.Navigation.$safeitemname$
      {
        public override void OnAppLoad()
        {
          //Do the work
        }
      }
    }
    


    使我的模板正常工作的修复方法是手动编辑 .cs 文件并将最后一个 $safeitemname$ 替换为 MXApplication,然后将 .cs 文件放回它来自的 .zip 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-07
      相关资源
      最近更新 更多