1

不久前,我决定开始使用 Nuget 来管理 3rd 方库。但是,自从我开始使用 Nuget 后,Teamcity 就无法再构建解决方案了。

所以,我有一个 WindowsPhone 项目,我在其中使用 t4 模板作为配置文件。我按照Oleg Sych 的说明集成了 MSBuild 和 T4。这个项目在我的 TeamCity 构建服务器上构建得很好。好吧,直到我开始使用 Nuget。添加了一些包并将 RestorePackaged 设置为 true,之后我不再能够在 TeamCity 中构建解决方案。

我在 TeamCity 中遇到的错误如下:

C:\Program Files\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets(396, 5):
Compiling transformation: Invalid token 'this' in class, struct, or interface member declaration. Line=1, Column=1 
C:\Program Files\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets(396, 5): 
Compiling transformation: Method must have a return type. Line=1, Column=6 
C:\Program Files\MSBuild\Microsoft\VisualStudio\TextTemplating\v10.0\Microsoft.TextTemplating.targets(396, 5): 
Compiling transformation: Type expected. Line=1, Column=12

T4 模板的输出文件包含以下消息:ErrorGeneratingOutput

在我使用 VS2010 的本地机器上,该解决方案也无法构建。但是,问题在于 MSBuild 确实处理了 T4 模板并生成了一个输出文件,但它没有将其添加到项目文件中。因此,构建失败,因为它找不到特定的类。

有没有人遇到过类似的问题?有任何修复吗?或者有人可以告诉我我应该在哪里寻找修复?

对于解决此问题的任何帮助,我将不胜感激。

谢谢!

4

1 回答 1

2

好的,我找到了解决方案!

我的错误是在构建服务器上安装 Nuget。一旦我删除了 nuget vsix 扩展,一切都开始工作了。

另外,我注意到默认情况下,Nuget 在以下位置查找配置文件:“%APPDATA%/NuGet/NuGet.Config”并且没有办法覆盖它,至少我还没有找到。尽管此链接http://nuget.codeplex.com/workitem/1358声明 Nuget 将使用 .nuget 文件夹中的本地文件(如果存在)。

于 2012-09-18T10:44:43.593 回答