我们可以在没有.proj文件的情况下创建网站的TFS构建定义

时间:2017-03-01 05:27:29

标签: tfs tfs2015

我正在使用TFS 2015来创建应用程序构建。我能够为Web应用程序创建构建模板,因为Web应用程序同时具有.sln和.proj。

但是对于网站,我只有.sln文件而没有.proj。

如何在仅具有.sln文件的网站的TFS 2015中创建构建定义?

2 个答案:

答案 0 :(得分:1)

正如@Cece所说,答案是肯定的,你可以在没有.csproj的服务器上运行MSBuild。

我假设你的项目没有在.Net Framework的最终版本上运行。在你的情况下,我建议你做这个改变

https://stackoverflow.com/a/42493822/819153

然后你应该复制PrecompiledWeb文件夹中的所有文件,你应该找到你的.sln 有时我会看到vb / cs项目没有项目文件,csproj或vbproject。它们与.NET Framework 2.0一起运行。对于那些,您可以创建一个构建定义只是为了编译.sln,但是当您部署应用程序时,您需要将整个PrecompiledWeb文件夹复制到服务器上的IIS文件夹中。尝试添加具有复制和发布选项的任务,并将所有更改放入您的服务器。 检查要放置文件的文件夹的权限,并确保在TFS上运行构建的代理具有对服务器文件夹的READ / WRITE访问权限。

在你的情况下,请检查.sln文件,里面你应该有一个TargetPath,默认情况下是PrecompiledWeb,但是有时当你在tfs上运行msbuild时你会收到一条错误,说PrecompiledWeb不能在你的解决方案的同一棵树上,你需要做的就是提高你的解决方案文件夹

Debug.AspNetCompiler.TargetPath = "..\..\PrecompiledWeb\YourProject"

然后在CopyTask上需要更改CopyRoot目录,如果在构建步骤之前进行了任何转换,那么这些转换将反映在PrecomiledWeb \ YourProject上。应将该文件夹中的所有文件部署到服务器文件夹路径。 假设你的分支中有这个结构

Branch / MyProject,然后在TFS上编译源代码之后,预编译文件夹将存储在代理文件夹的项目的同一级别。请参阅下面的图片,了解如何从PrecompiledWeb复制文件。

enter image description here

答案 1 :(得分:0)

答案是肯定的。您可以通过指定.sln文件为WebSite项目创建构建定义。

enter image description here