问题:如果在重建后立即运行解决方案,则会删除复制到输出目录的文件。
Visual Studio版本:社区2013版本12.040629.00更新5
在Windows 10上运行
我的解决方案结构如下:
MySolution.Services (library project)
MySolution.Main (startup project - WPF application)
在服务项目中,有一些文件被标记为"复制到输出目录=复制始终"。当我构建时,我能够看到文件输出到正确的目录。 我的项目都没有建立活动。 我的所有项目都输出到" .. \ Builds"。
以下序列正常工作(文件未删除):
随机更改.cs文件
单击“开始调试”
以下序列导致输出目录中的文件被删除:
点击构建 - >重建解决方案
单击“开始调试”
输出目录中的文件会立即删除。
我可以随意重现此问题。 我在Application_Startup中有一个断点。我可以看到在我的任何代码运行之前删除了文件(BTW我的应用程序中没有代码可以在任何条件下删除这些文件。):
我在Visual Studio论坛here上发布了同样的问题。 我的解决方案有七个项目,可能有几百个文件。在我花一天时间逐个添加文件并点击" Build"我希望有人可以指导我更有效的故障排除路径。此外,我对导出和导入VS设置非常谨慎,因为我过去已经损坏了我的VS安装,我真的不想冒这样做的风险。我不想再猜测那些试图帮助我的MS技师 - 我想在做一些我可能会后悔的事情之前得到第二意见。
答案 0 :(得分:0)
如果您正在寻找解决方案,则可以尝试“如何防止在构建过程中删除内容文件”中描述的解决方案之一-既无表决权,也值得一试。 How to prevent content files to be removed during incremental build?
答案 1 :(得分:0)
设置时,您可以看到删除文件的过程:
Tools > Options > Projects and Solutions > Build and Run > MSBuild project build output verbosity:
诊断
我有同样的问题。在构建我的项目时,请参见output-dir:
Removed Item(s):
1> Reference=
1> Missing.Box
1> HintPath=..\lib\Missing.Box.dll
1> SpecificVersion=False
...
我发现全文: https://oz-code.com/blog/visual-studio-keeps-rebuilding-projects-no-good-reason/
答案 2 :(得分:-1)
当项目由多个dll组成时,可能会发生这种情况,并且复制到输出目录的文件是其中一个依赖dll的一部分。
如果依赖关系不直接指向最终的,可执行的,项目,但是是第二级(最终项目依赖于dll x,这取决于dll y,其中包含要复制的内容)然后,尽管VS已经复制了在构建期间,文件到最终可执行文件的输出目录,它在调试器启动时确定它们不应该存在并删除它们。
解决方案是使间接依赖性成为最终可执行文件的直接依赖。