1

我需要一个 T4 模板或其他东西来与 Visual Studio 集成以在解决方案中生成文件的相对路径。

他们有任何插件或t4吗?我正在使用 Visual Studio 2012。

像这样的东西:

    public static class Scripts
    {
        public static class AdminSkin
        {
            public static class Css
            {
                public const string Site = "/Scripts/adminskin/css/site.css";
                public const string SiteFa = "/Scripts/adminskin/css/site-fa.css"; 
                public const string Reset = "/Scripts/adminskin/css/reset.css";
                public const string SimpleList = "/Scripts/adminskin/css/simple-lists.css";
                public const string SpecialPages = "/Scripts/adminskin/css/special-pages.css";

            }

            public static class Js
            {
                public const string Site = "/Scripts/adminskin/js/site.js";
                public const string JqueryaccessibleList = "/Scripts/adminskin/js/jquery.accessibleList.js";
                public const string Jquerytip = "/Scripts/adminskin/js/jquery.tip.js";
                public const string List = "/Scripts/adminskin/js/list.js";
                public const string Oldbrowsers = "/Scripts/adminskin/js/old-browsers.js";
                public const string LiveControl = "/Scripts/adminskin/js/live-control.js";
            }
        }

        public static class Calendar
        {
            public static class Js
            {
                public const string Calendar = "/Scripts/calendar/calendar.js";
                public const string CalendarSetup = "/Scripts/calendar/calendar-setup.js";

                public const string CalendarFa = "/Scripts/calendar/calendar-fa.js";
                public const string CalendarEn = "/Scripts/calendar/calendar-en.js";
            }

            public static class Css
            {
                public const string Theme = "/Scripts/calendar/aqua/theme.css";
            }
        }

        public static class HighChart
        {
            public static class Js
            {
                public const string Highstock = "/Scripts/highchart/highstock.js";
                public const string HighstockModified = "/Scripts/highchart/highstock.src.js";
                public const string Theme = "/Scripts/highchart/themes/mytheme.js";
                public const string Exporting = "/Scripts/highchart/modules/exporting.src.js";
            }
        }

        public static class ImageGallery
        {
            public static class Js
            {
                public const string JqueryEasing = "/Scripts/ImageGallery/js/jquery.easing.1.3.min.js";
                public const string JqueryWtRotator = "/Scripts/ImageGallery/js/jquery.wt-rotator.min.js";
                public const string Preview = "/Scripts/ImageGallery/js/preview.js";
            }

            public static class Css
            {
                public const string Preview = "/Scripts/ImageGallery/preview.css";
                public const string JqueryWtRotator = "/Scripts/ImageGallery/wt-rotator.css";
            }
        }

        public static class JQuery
        {
            public static class Js
            {
                public const string JqueryCdn = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js ";
                public const string JqueryUiCdn = "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.20/jquery-ui.min.js";
                public const string JqueryUiCssCdn = "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.20/themes/ui-lightness/jquery-ui.css";

                public const string JqueryLocal = "/Scripts/jquery/jquery-1.7.min.js";
                public const string JqueryUiLocal = "/Scripts/jquery-ui/js/jquery-ui-1.8.20.custom.min.js";
                public const string JqueryUiCssLocal = "/Scripts/jquery-ui/css/ui-lightness/jquery-ui-1.8.20.custom.css";
            }
        }

        public static class Linq
        {
            public static class Js
            {
                public const string Linq = "/Scripts/linq.js/linq.min.js";
            }
        }


        public static class Moment
        {
            public static class Js
            {
                public const string Moment = "/Scripts/moment/moment.min.js";
            }
        }

        public static class Lang
        {
            public static class Js
            {
                public const string Jalali = "/Scripts/lang/jalali.js";
                public const string LangFa = "/Scripts/lang/lang-fa.js";
            }
        }
    }
4

1 回答 1

1

T4MVC可能是您正在寻找的。它是用于 ASP.NET MVC 应用程序的 T4 模板,用于创建强类型帮助程序。它将生成一组您可以使用而不是使用字符串的类。对于 javascript 文件等静态文件,将有一组类,例如:

Links.Scripts.jquery_validate_js

这将返回格式为“~/Scripts/jquery.validate.js”的字符串。

对于 WebForms 项目,David Ebbo 创建了一个名为 AspPathGuru.tt 的简单 T4 模板。目前仅支持 .aspx、.ascx 和 .master 文件。但是,如果您编辑 IgnoreFile 方法,如下所示,您可以为其他文件生成代码:

bool IgnoreFile(FileInfo file) {
    // Only look for a few specific extensions
    switch (file.Extension.ToLowerInvariant()) {
        case ".aspx":
        case ".ascx":
        case ".js":
        case ".css":
        case ".master":
            return false;
    }

    return true;
}

这将生成一个您可以使用的 Paths 类,如下所示:

Paths.Scripts.jquery_1_4_1_js
于 2012-08-18T16:30:39.303 回答