有没有MSBuild替代品?

时间:2012-07-20 15:21:46

标签: c#-4.0

**我是一名训练有素的学生,对C#的经验很少。 我们公司正在使用T4模板(C#VS2010)开发解决方案。 生成的文件无法在MSBuild下编译,因为它依赖于VS. 我的任务是找到一个工具或库或.dll文件或SDK或任何可以在构建时间内替换VS的东西。其他明智的我必须将生成的代码修改为VS独立我的selef,我认为这对我来说是一项艰巨的任务。 代码samble:

Project GetProjectContainingT4File(DTE dte) {

// Find the .tt file's ProjectItem

ProjectItem projectItem = dte.Solution.FindProjectItem(Host.TemplateFile);

// If the .tt file is not opened, open it

if (projectItem.Document == null)

    projectItem.Open(Constants.vsViewKindCode);

if (AlwaysKeepTemplateDirty) {

    // Mark the .tt file as unsaved. This way it will be saved and update itself next time the

    // project is built. Basically, it keeps marking itself as unsaved to make the next build work.

    // Note: this is certainly hacky, but is the best I could come up with so far.

    projectItem.Document.Saved = false;

}

return projectItem.ContainingProject;

}

我很感激你的帮助。**

2 个答案:

答案 0 :(得分:1)

限制

  

生成的文件无法在MSBuild下编译,因为它是VS依赖的

看起来很奇怪。为什么要定位.NET环境但希望您的构建环境与MS无关?当然,你至少需要一个C#编译器。

如果您真的想要使用除MSBuild之外的其他内容,还有许多其他选择,例如Mono Microsoft.Build甚至Make for Windows

答案 1 :(得分:0)

MSBuild基本上是NMake的托管和高度可扩展版本,因此不依赖于VS!但它依赖于.NET。

因此,您应该能够使用MSBuild来协调您需要的一切。

即使是C#编译器也是.NET运行时的一部分,因此您甚至可以在不产生VS依赖性的情况下构建C#目标。