ASP.NET发布时尝试复制不存在的文件

42
我正在尝试在VS2010中发布ASP.NET项目,但出现以下错误: 复制文件bin\CKFinder.pdb到obj\Release\Package\PackageTmp\bin\CKFinder.pdb失败。找不到文件'bin\CKFinder.pdb'。 我曾经试用过CKEditor的试用版的CKFinder,但是我已将其移除。我删除了所有与CKFinder相关的引用,包括文件夹和引用(或者我以为如此)。 为什么会出现这个错误?有什么想法吗?

2
更新:我进入了“项目”-->“包/发布设置”,并点击了“排除生成的调试符号”。现在,当我写这篇文章时,该项目正在发布。 - Ray K.
13个回答

47

我也遇到了这个问题。在尝试发布MVCForum 1.7时,我收到以下错误:

  

将文件App_Data \ NuGetBackup \ Hello.txt复制到obj \ Release \ Package \ PackageTmp \ App_Data \ NuGetBackup \ Hello.txt失败。找不到文件“App_Data \ NuGetBackup \ Hello.txt”。

François Breton的评论帮助我解决了这个问题。

很简单:

使用文本编辑器(如记事本、Notepad++)打开您的 .csproj 文件。Visual Studio会将其作为项目打开。

Ctrl + F 并搜索该问题的文件。在我的情况下,文件是没有逗号的“Hello.txt”。

在它所属的<ItemGroup>下:

<ItemGroup>
<Content Include="App_Data\NuGetBackup\Hello.txt" />
<Content Include="Content\admin\Admin.css">
    <DependentUpon>Admin.scss</DependentUpon>
</Content>
...More code omitted due to brevity.

我删除了<Content Include="App_Data\NuGetBackup\Hello.txt" />这一行,然后就可以预览发布了!

最终结果将会是这样的:

<ItemGroup>
<Content Include="Content\admin\Admin.css">
    <DependentUpon>Admin.scss</DependentUpon>
</Content>
...More code omitted due to brevity.

1
这个救了我的一天。我遇到了相同的问题,但是是针对npm文件(例如npm-debug.log)。 - Petter Ivarsson

13

我刚刚从我的 Visual Studio 解决方案 中删除了标记为黄色的文件,对我来说它非常有效,因为这些文件已经被从文件夹中添加删除很多次,但并没有从VS解决方案项目中删除。


13
更新:我进入了“ Project-->Package/Publish Settings”的选项,点击了“ Exclude generated debug symbols”(排除生成的调试符号)。问题得到解决并成功发布了项目。
更新#2(这可能是更好的答案):我尝试发布调试版本而不是发布版本(是的,在特定的发布中我想保留调试功能),错误再次出现。原来我没有将CKfinder.dll从项目中排除。一旦我这样做了,它就可以正常运行了。

1
错误1 将文件 Views\Default1\Index.cshtml 复制到 obj\Release\Package\PackageTmp\Views\Default1\Index.cshtml 失败。无法找到文件 'Views\Default1\Index.cshtml'。在 VS2012 Express 中! - François Breton
6
啊!文件不在文件夹中,而是在.proj文件中。SubVersion提交失败! - François Breton
7
Francois Breton的评论对我很有帮助。我已经移除了一个dll的引用,但是TFS没有反映出来。我不得不去编辑我的Project.csproj文件,并删除<Content Include=OffendingDLL.dll>的引用。保存到磁盘上后,VS要求重新加载项目。现在可以发布了。 - Vishnoo Rath
@FrançoisBreton 谢谢你,你的评论帮了我大忙,让我在浪费30分钟的时间后找到了答案。 - Shekhar Pankaj

10
删除解决方案资源管理器中显示感叹号的文件。这对我很有效。

带有文件的解决方案资源管理器


6
我遇到了同样的问题,只需点击“显示所有文件”,然后删除带有感叹号标记的文件即可。希望这能对某些人有所帮助。

3

右键单击您的项目 => 卸载项目 => 再次右键单击新卸载的项目 => 编辑 'myProject.csproj' => 搜索有问题的文件 (CTRL + F) 并删除。

如果错误再次出现在相同的父目录下,但现在是不同的文件名,可能是用户错误地将一个文件包含在项目中(就像我一样)。可以删除有问题目录下的所有文件。这应该解决问题。


3
您需要将项目中的 bin 文件夹 排除在外,然后重新发布您的项目。这种方法可以解决我的问题。

2
在我的情况下,我遇到了类似的错误,但是是关于.cshtml文件的,就像这样:

将 Views\Home\About.cshtml 复制到 obj\Release\Package\PackageTmp\Views\Home\About.cshtml 时失败。找不到文件 'Views\Home\About.cshtml'

查看解决方案资源管理器树,一切都看起来很好,没有黄色标记,但是单击文件时会出现错误。

项目目录中不存在项“About.cshtml”。它可能已被移动、重命名或删除。

enter image description here

对我来说,从解决方案中删除这些文件解决了问题。

我在项目中删除了.chtml文件,所以解决方案中不存在该文件...但是在发布时显示以下错误消息:>> obj \ Release \ Package \ PackageTmp \ Views \ Account \ Login.cshtml 到 obj \ Release \ Package \ PackageTmp \ obj \ Release \ Package \ PackageTmp \ Views \ Account \ Login.cshtml 失败。找不到文件 'obj \ Release \ Package \ PackageTmp \ Views \ Account \ Login.cshtml'。 - saman samadi

1

我错误地将 obj 文件夹包含在 Visual Studio 项目中。从项目中排除 Obj 文件夹解决了我的问题。


0

在 VS Explorer 中检查是否添加了 bin 文件夹。如果有,则将其从项目中排除并进行检查。这对我起作用了。


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