【发布时间】:2019-02-11 07:49:48
【问题描述】:
我有一个包含大约 50 个 C# 项目的 Visual Studio 2013 解决方案。通常,如果我选择构建 (F6),它只会构建已更改的项目。但有时在我关闭并重新启动我的电脑后,当我选择构建 (F6) 时它会重建所有内容。为什么?
当我重新启动我的电脑时,这种情况并不总是发生。大多数时候它说所有项目在重新启动后都是最新的。但有时它会重建所有内容。
我查看了以下问题Visual Studio Rebuilds unmodified projects 及其答案。
我所做的下一步是将构建输出详细程度设置为诊断。
在 PC 重新启动后 Visual Studio 全部重建时,我得到以下输出:
1>Project 'Project1' is not up to date. Missing input file
...
有更多的行(超过 1000 行)。我看了看它们,但我仍然不明白为什么 Visual Studio 会重建项目。
更新
为什么 Visual Studio 需要以下文件?
1>Project 'Project1' is not up to date. Missing input file
'c:\users\wo\appdata\local\temp\.netframework,version=v4.5.assemblyattributes.cs'.
...
【问题讨论】:
-
可能有很多东西。 Project1 依赖的输入文件是什么?有外部依赖吗?您的项目是否构建到重启后被清除的文件夹?临时文件夹? RAM 驱动器?
-
@MickyD Project1 依赖于两个未更改的 cs 文件和两个本机 dll 文件。重启后文件夹不会被清除。我正在使用 Subversion,构建文件夹在忽略列表中。
-
查看项目的 Pre-build 事件。 “缺少输入文件”让我很担心
-
@MickyD 没有预构建事件。
-
@MickyD 我已经编辑了我的问题。关于临时文件夹的评论帮助我更好地理解它。
标签: c# windows visual-studio visual-studio-2013 msbuild