作为持续集成构建定义

时间:2016-06-15 22:33:55

标签: visual-studio visual-studio-2015 azure-devops

我通过Visual Studio Team Services(以前的Visual Studio Online)使用托管构建代理,以便ALM执行我的构建定义,这需要我的' beta'从GitHub分支并将其部署到我的测试版' Azure WebApp上的部署槽。每个都很好,除了一个文件 - 一个名为snapshot.cshtml的简单.cshtml文件。它上传附带的snapshot.js文件,但是在构建日志中找不到snapshot.cshtml文件。

no sign of the cshtml file but there is the js and all other cshtml file my solution needs

这意味着尽管成功构建了我的测试人员,但仍然如此:

  

视图'〜/ App / tenant / views / webitems / snapshot.cshtml'或它的主人   找不到或没有视图引擎支持搜索的位置。该   搜索了以下位置:   〜/应用/承租人/视图/ webitems / snapshot.cshtml

我通过FTP进入并发现该消息确实准确无误:

everything else went up but not snapshot.cshtml

解决方法是上传丢失的文件,但在连续部署方案中显然不理想。

对.csproj文件的仔细检查揭示了一个有趣的区别:

who put that there

我没有这样做。回顾一下GitHub中的Blame(仍然掌握着GitHub)我可以看到它只是在首次创建文件时设置它:

two different ways

它根据需要添加了snapshot.js,但由于某些未知原因决定将snapshot.cshtml的Build Action设置为None。

因此,虽然我希望其他人可能会发现这篇文章有用,但问题最终会变成如何/为什么会这样做呢?我怎样才能阻止它再次这样做呢?

1 个答案:

答案 0 :(得分:1)

当它的构建操作设置为“无”时,该文件将不会包含在部署包中,就像您找到的那样。将构建操作更改为“内容”将解决此问题。

要避免此问题,可以在项目文件中添加自定义目标,以检查.cshtml文件的构建操作。有关详细信息,请参阅此问题中的答案:Make sure all *.cshtml files are set to be “Content” for Build Action