我正在使用TFS 2015来创建应用程序构建。我能够为Web应用程序创建构建模板,因为Web应用程序同时具有.sln和.proj。
但是对于网站,我只有.sln文件而没有.proj。
如何在仅具有.sln文件的网站的TFS 2015中创建构建定义?
答案 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复制文件。
答案 1 :(得分:0)