无法找到文件'obj\Debug\OldProjectName.csproj.FileListAbsolute.txt'。

24
我正在尝试发布项目(使用vs2010工具),但总是收到下面的错误。我将另一个项目的文件复制到我的项目文件中,然后将名称空间(OldProjectName)更改为父项目(NewProjectName)。但它仍然从某个地方获取有关旧项目的信息。 我尝试清理解决方案,构建和重新构建;关闭并重新打开,但始终出现相同的错误。 我可以构建项目但无法发布。 您有什么想法可以导致这个问题?
错误1:将 obj\Debug\OldProjectName.csproj.FileListAbsolute.txt 复制到 obj\Debug\Package\PackageTmp\obj\Debug\OldProjectName.csproj.FileListAbsolute.txt 失败。找不到文件 'obj\Debug\OldProjectName.csproj.FileListAbsolute.txt'. 0 0 NewProjectName
11个回答

34
  1. 用记事本打开你的.csproj文件

  2. 找到 "obj\Debug\OldProjectName.csproj.FileListAbsolute.txt"这一行

  3. 删除该行并保存文件
  4. 重新打开项目并尝试发布,这一次你会成功的。

注意:如果你还有其他类似的文件,比如.pdb文件,也要将其删除。
希望这能对你有所帮助。


1
编辑 csproj 文件解决了问题。项目以某种方式保留了引用,但在 IDE 中没有显示出来。 - RaoulRubin

9

请确保obj文件夹不是只读的,如果是,请将该文件夹的只读属性更改为false。这对我有用。


2
这是我的情况,因为我的合作程序员已经提交了不属于源代码控制的项目。(因此我标记为删除并提交更改列表。) - Mike Grimm
我还需要在取消只读属性后重新加载项目。谢谢。 - Rola

3

请检查"bin"和"obj"文件夹是否被提交到源代码控制中,如果是,请在源代码控制中删除这两个文件夹。这两个文件夹不需要提交到源代码控制中。同时,请确保从您的硬盘中删除这些文件夹"obj"和"bin",它们将在构建后重新生成。

希望这能解决您的问题。


3

检查文件夹 obj\Debug\ 的权限,如果您将其赋予写入权限,则错误将消失。


1
我正在以管理员身份运行VS。我检查了权限,看起来很好。在调试文件夹下根本找不到这个文件,所以我认为它可能是从临时文件中读取的... - Eugene
这是因为某个人(咳咳,就是我)在以不同于TFS服务帐户的用户身份登录时,在该文件夹上直接运行了构建。 - makhdumi

2

1
这还不够。 - Erdogan

2

您需要自行复制文件以便返回到起始状态,这是您的责任。

使用记事本打开项目文件(vb/cs)proj,并搜索缺失的文件。

在我的情况下,当我尝试发布项目时,某些文件未被找到,导致出现了这个错误。

每次尝试发布时,我都会得到另一个文件名,在确认该文件实际上不存在于项目中后,我手动从项目文件中删除它。

然后,发布就成功了。


2
许多文件都是只读的,需要被删除或被VS覆盖。但是,对于许多人来说,问题是这些文件被检入到源代码控制中。您的bin和obj文件夹不应该在源代码控制中。将它们标记为要删除并提交更改列表即可。
规则的一个例外是bin文件夹中可能包含不兼容.NET的dll文件。例如,通过.NET包装器dll使用的C/C++ dll。我将它们标记为内容以便发布,并将其检入源代码控制。

1

我也遇到了这个问题。我通过删除项目 bin 文件夹内的文件 (.dll 和 .pdb),然后关闭并重新打开 VS 解决了这个问题。


1
文件名为FileListAbsolute.txt的文件已从obj/debug文件夹中删除。Visual Studio可以自动重新创建该文件和obj/debug文件夹中的其他文件。 要让VS重新创建它,请将解决方案和项目的配置设置为调试模式,然后重新构建解决方案。
要将配置模式更改为调试模式,请在解决方案资源管理器中右键单击解决方案名称,然后选择属性
配置属性下选择配置。然后从下拉列表中选择调试。 单击应用确定。确保在配置管理器中,配置模式也是调试模式。
然后重新构建您的解决方案。

0

对我来说,使用这里的解决方案:某些Razor视图未发布

排除视图文件夹并重新包含它对我有用。因此,对于其他遇到此问题的人来说,可能只需将项目中涉及的文件/文件夹排除,然后再重新包含即可。


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