如何从多个源文件创建MSBuild内联任务

我有几个CS文件(一个DLL项目),都在一个目录中,其中一个类扩展了ITask。 现在,很容易记录如何从一个源文件创建内联任务,但是可以从多个源文件中执行此操作吗? 我无法编译和使用DLL作为任务,如果我不必将所有源都塞入一个大的源文件,我更愿意。

我的目标是:

     

由于没有其他答案,这里有一个完整的示例,可以在任何数量的源文件中构建一个dll,就像在评论中谈到的那样。 两个源文件:

sometask.cs:

 using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using Bar; namespace Foo { public class CustomTask : Task { public override bool Execute() { Log.LogWarning( LogString.Get() ); return true; } } } 

sometask_impl.cs:

 namespace Bar { public static class LogString { public static string Get() { return "task impl"; } } } 

和msbuild文件的目标使用Foo.CustomTask,但首先构建它:

    SomeTask.dll          

相关产出:

 > msbuild sometask.targets Project sometask.targets on node 1 (default targets). BuildSomeTaskDll:  sometask.targets(17,5): warning : task impl