ASP.NET 发布 Web 应用程序时复制文件出现错误,即使文件已经被删除

3

在Windows 10上,当我尝试将MVC Web应用程序发布到IIS时,我在Visual Studio中遇到了一个非常奇怪的问题。它试图复制一个在我的解决方案中不存在的文件。以下是错误信息:

严重性 代码 描述 项目 文件 行 抑制状态 错误 复制文件 obj\Release\AspnetCompileMerge\Source\Views\Demo\File.cshtml 到 obj\Release\Package\PackageTmp\obj\Release\AspnetCompileMerge\Source\Views\Demo\File.cshtml 失败。找不到文件 'obj\Release\AspnetCompileMerge\Source\Views\Demo\File.cshtml'。 解决方案 0

这个文件在我的解决方案中根本不存在,所以我不确定为什么它正在尝试复制这个文件。我尝试重新启动了Visual Studio,清理并重建了我的解决方案,删除了.vs文件夹,但所有这些都没有起作用。


你之前删除了 file.cshtm 文件吗? - Udara Kasun
@UdaraKasun 是的,我确实在为此解决方案寻找可能出现的所有地方。我不得不将我的解决方案迁移到一个新的解决方案来修复它。 - user9972789
5个回答

8
解决方案1

当你从文件夹中删除文件(不是在Visual Studio中删除),通常会出现这个错误消息。原因是你的“projectname.CSPROJ”文件已经记录了你删除的文件的引用。

例如:<Content Include="Views\home\Index.cshtml" />

然后你可以从你的“projectname.CSPROJ”中删除该引用。

解决方案2

如果你可以在项目中看到文件,你可以右键单击该文件并从项目中排除(Exclude)该文件。

之后你就可以发布你的项目而不出现错误了。


1
我正在使用VS 2019,出现了相同的错误。 对我来说,原因似乎是解决方案位置。文件路径超过了200个字符。 在我将解决方案复制到C:驱动器后,它开始正常工作。

0

尝试一下,右键 -> App_Data -> 点击从项目中排除.....


已将我的项目迁移到新项目以进行修复。谢谢您的帮助。 - user9972789

0
如果你遇到这样的错误,最好的方法就是将你的项目迁移到一个新的解决方案中,这就是我所做的。

0
如果您只在发布ASP.NET MVC项目时遇到此问题,请检查您可能已将该文件包含在项目的包含部分中,但实际上文件已从文件夹中删除。
只需从项目文件中删除包含部分,如下所示。
<Content Include="obj\Release\AspnetCompileMerge\Source\Views\Demo\File.cshtml" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接