Visual studio 2013 若在重建后立即运行解决方案,则会删除复制到输出目录的文件

Visual studio 2013 若在重建后立即运行解决方案,则会删除复制到输出目录的文件,visual-studio-2013,Visual Studio 2013,问题:如果重建后立即运行解决方案,则会删除复制到输出目录的文件 Visual Studio版本:Community 2013版本12.040629.00更新5 在Windows10上运行 我的解决方案的结构如下: MySolution.Services (library project) MySolution.Main (startup project - WPF application) 在服务项目中,有些文件标记为“复制到输出目录=始终复制”。当我构建时,我能够看到文件被输出到正确的目录

问题:如果重建后立即运行解决方案,则会删除复制到输出目录的文件

Visual Studio版本:Community 2013版本12.040629.00更新5

在Windows10上运行

我的解决方案的结构如下:

MySolution.Services (library project)

MySolution.Main (startup project - WPF application)
在服务项目中,有些文件标记为“复制到输出目录=始终复制”。当我构建时,我能够看到文件被输出到正确的目录。 我的所有项目都没有生成事件。 我的所有项目都输出到“.\Builds”

以下顺序正常工作(不会删除文件):

对.cs文件进行随机更改

单击开始调试

以下顺序将导致删除输出目录中的文件:

单击构建->重建解决方案

单击开始调试

立即删除输出目录中的文件

我可以随意复制这个问题。 我在应用程序启动时有一个断点。我可以看到文件在我的任何代码运行之前被删除(顺便说一句,我的应用程序中没有在任何情况下删除这些文件的代码。):

我已经在VisualStudio论坛上发布了同样的问题。
我的解决方案有七个项目,可能有几百个文件。在我花一天时间逐个添加文件并单击“构建”之前,我希望有人能引导我找到一条更高效的故障排除路径。此外,我对导出和导入VS设置非常谨慎,因为我在过去损坏了我的VS安装,我真的不想再次冒险这样做。我不想猜测试图帮助我的MS技术人员-我想在做我可能后悔的事情之前获得第二意见。

当项目由多个DLL组成,并且复制到输出目录的文件是其中一个依赖DLL的一部分时,可能会发生这种情况


如果依赖项不是直接指向最终可执行项目,而是第二级(最终项目依赖于dll x,后者依赖于dll y,后者具有要复制的内容),那么,尽管VS在生成期间已将文件复制到最终可执行文件的输出目录,它在调试器启动时确定它们不应该真的存在并删除它们


解决方案是使间接依赖项成为最终可执行文件的直接依赖项。

如果您正在寻找解决方案,您可以尝试“如何防止在生成过程中删除内容文件”中描述的解决方案之一,两者都没有投票权,但值得一试

设置时,您可以看到删除文件的过程:

工具>选项>项目和解决方案>生成和运行>MSBuild项目生成输出详细信息:
诊断

我也有同样的问题。在生成项目时,请参见输出目录:

Removed Item(s): 
1>    Reference=
1>        Missing.Box
1>                HintPath=..\lib\Missing.Box.dll
1>                SpecificVersion=False
...
全文我发现:

也有同样的问题。我可以用我的项目在每台电脑上复制。重建后,我在输出文件夹中有文件,从VS my files dissapear运行后。此时,我只能从输出文件夹手动正确运行项目,所以无法调试。如果已修复,请共享解决方案。这似乎是VS错误。我知道的唯一解决方法是在调试之前对cs文件进行随机更改(调试之前不要重建)。“如果依赖项不是直接指向最终的可执行项目…”感谢您的回答,但这不是问题中的场景。这确实为我解决了问题。我的项目A(一个控制台应用程序)引用了项目B(一个DLL),它引用了项目C(另一个DLL)。项目C中的资源(文本文件)设置为在更新到生成目录时复制。现在我将项目A设置为直接引用项目C,这样就解决了资源消失的问题。