我通过Visual Studio Team Services(以前的Visual Studio Online)使用托管构建代理,以便ALM执行我的构建定义,这需要我的' beta'从GitHub分支并将其部署到我的测试版' Azure WebApp上的部署槽。每个都很好,除了一个文件 - 一个名为snapshot.cshtml的简单.cshtml文件。它上传附带的snapshot.js文件,但是在构建日志中找不到snapshot.cshtml文件。
这意味着尽管成功构建了我的测试人员,但仍然如此:
视图'〜/ App / tenant / views / webitems / snapshot.cshtml'或它的主人 找不到或没有视图引擎支持搜索的位置。该 搜索了以下位置: 〜/应用/承租人/视图/ webitems / snapshot.cshtml
我通过FTP进入并发现该消息确实准确无误:
解决方法是上传丢失的文件,但在连续部署方案中显然不理想。
对.csproj文件的仔细检查揭示了一个有趣的区别:
我没有这样做。回顾一下GitHub中的Blame(仍然掌握着GitHub)我可以看到它只是在首次创建文件时设置它:
它根据需要添加了snapshot.js,但由于某些未知原因决定将snapshot.cshtml的Build Action设置为None。
因此,虽然我希望其他人可能会发现这篇文章有用,但问题最终会变成如何/为什么会这样做呢?我怎样才能阻止它再次这样做呢?
答案 0 :(得分:1)
当它的构建操作设置为“无”时,该文件将不会包含在部署包中,就像您找到的那样。将构建操作更改为“内容”将解决此问题。
要避免此问题,可以在项目文件中添加自定义目标,以检查.cshtml文件的构建操作。有关详细信息,请参阅此问题中的答案:Make sure all *.cshtml files are set to be “Content” for Build Action。