C# 在其他解决方案中使用T4模板的程序集?

C# 在其他解决方案中使用T4模板的程序集?,c#,t4,C#,T4,我刚刚完成了T4模板的创建,以自动生成ViewModel类的属性实现(请参见此处:) 目前,我需要让项目在我想要生成属性实现的解决方案中保存“.tt”-文件 例如,该解决方案包含三个项目:T4Generation、一些带有ViewModels的项目和另一个带有ViewModels的项目 然后,在T4Generation中调用T4模板时,它会查看解决方案中的所有项目,找到所有ViewModel类,并生成一个C#文件,其中包含各个项目中特定ViewModel的属性实现 例如: “SomeProjec

我刚刚完成了T4模板的创建,以自动生成ViewModel类的属性实现(请参见此处:)

目前,我需要让项目在我想要生成属性实现的解决方案中保存“.tt”-文件

例如,该解决方案包含三个项目:T4Generation、一些带有ViewModels的项目和另一个带有ViewModels的项目

然后,在T4Generation中调用T4模板时,它会查看解决方案中的所有项目,找到所有ViewModel类,并生成一个C#文件,其中包含各个项目中特定ViewModel的属性实现

例如:

“SomeProject WithViewModels.SomeViewModel.cs”

生成文件“SomeProjectWithViewModels.SomeViewModel.Properties.cs”

我现在的问题是,是否有可能创建一个程序集(即“T4Generation.dll”),该程序集可以在任何解决方案中引用,从而使宿主解决方案能够以某种方式调用代码生成过程

例如,我将启动一个新的解决方案“SomeSolution.sln”,其中包含项目“SomeApplication.exe”、“SomeClassLibrary.dll”,在SomeApplication中,我将引用“T4Generation.dll”,在SomeApplication的构建过程中,将调用T4 generation


这可能吗?

您使用的是Visual Studio 2010吗?如果是这样的话,我建议您使用“预处理模板”来完成您要做的事情。预处理模板生成生成代码的生成器类,而不是直接生成代码。因此,使用这些由T4模板生成的生成器类,您可以生成一个T4Generation.EXE控制台应用程序,作为预编译命令从项目中调用。将路径传递到项目,生成器将完成其余工作。这将可从任何项目中重复使用。

您使用的是Visual Studio 2010吗?如果是这样的话,我建议您使用“预处理模板”来完成您要做的事情。预处理模板生成生成代码的生成器类,而不是直接生成代码。因此,使用这些由T4模板生成的生成器类,您可以生成一个T4Generation.EXE控制台应用程序,作为预编译命令从项目中调用。将路径传递到项目,生成器将完成其余工作。这将从任何项目中重复使用。

当然。。。不幸的是,很多人在VS2010测试版的时候都在写这篇文章,从那以后就没有多少新闻报道了。但是,一旦你自己做了一个,就不难理解了。以下是我在学习时获得的一些del.icio.us链接:当然。。。不幸的是,很多人在VS2010测试版的时候都在写这篇文章,从那以后就没有多少新闻报道了。但是,一旦你自己做了一个,就不难理解了。以下是我在学习时获得的一些del.icio.us链接:
public partial class SomeViewModel : BaseViewModel
{
    private string p_SomeProperty;
}
public partial class SomeViewModel
{
    public string SomeProperty
    {
        get { ... }
        set { ... }
    }
}