.Net MVC本地发布报错:复制template\hts-cache\doit.log文件失败
嘿,我之前也碰到过类似的发布坑,给你几个实用的排查和解决步骤:
先确认文件的真实状态:直接去项目根目录的
template\hts-cache路径下看看,是不是doit.log被误删了,或者路径拼写有问题(虽然Windows不区分大小写,但发布工具有时候会严格校验)。如果这个日志文件不是项目必需的,直接在项目里右键它(如果还能看到)选择从项目中排除就行。检查项目文件的残留引用:如果文件已经不在但发布仍报错,大概率是.csproj里还留着它的引用。右键项目→卸载项目→编辑
.csproj文件,搜索doit.log,找到类似<Content Include="template\hts-cache\doit.log" />或者带CopyToOutputDirectory的节点,直接删掉,然后重新加载项目再试试发布。清理缓存后重建:先执行
Build → Clean Solution清理解决方案,然后手动删除项目下的obj和bin文件夹(这俩文件夹经常存缓存搞事情),再重新Build → Rebuild Solution,之后再发布,很多时候这种缓存问题就能解决。排查发布配置的复制规则:看看你的发布配置文件(Publish Profile)里有没有额外加文件复制规则。可以去
Properties\PublishProfiles目录下打开对应的.pubxml文件,搜索doit.log,如果有相关的复制指令就删掉;或者在发布设置的「文件发布选项」里检查是否有包含这个文件的规则。如果是运行时生成的日志文件:如果这个
doit.log是程序运行后才会生成的,那它本来就不会出现在项目源码里。这时候要在.csproj里配置排除它,避免发布时尝试复制:
<ItemGroup> <Content Remove="template\hts-cache\doit.log" /> <None Include="template\hts-cache\doit.log" CopyToOutputDirectory="Never" /> </ItemGroup>
内容的提问来源于stack exchange,提问作者Arun Prasad E S

