我落后于VS2010,并从一个由Web项目引用的图像文件夹中删除了一些图像作为内容。在解决方案导航器中,这些文件现在显示黄色警告图标,表示无法找到该文件。刷新文件夹无效。有没有办法告诉VS2010自动同步文件夹? VS网站项目默认执行此操作。
答案 0 :(得分:2)
在Visual Studio中转到缺少的文件,选择它们并按del
(或右键单击并选择Delete
)。
保存项目,你很高兴。
如您所述,这不是自动的 - 项目文件需要与实际文件系统同步。网站“项目”不会发生这种情况,因为没有项目文件。
答案 1 :(得分:2)
我刚刚在VS 2015中遇到了这个问题。整个网络项目都缺少文件,因此不想全部查找。
回家的最快方式是:排除所有文件/文件夹然后再包括它们。
那是:
答案 2 :(得分:2)
我已经创建了一个PowerShell脚本来处理这个问题。
function ExtractInclude ($line)
{
if ($line -like '*Content Include=*') {
return $line.Split('"') | select -Skip 1 | select -First 1
}
}
function RemoveMissingInclude ([string]$path, [bool]$report) {
$reader = [System.IO.File]::OpenText($path)
$projectPath = (Split-Path $path) + "/"
try {
for() {
$line = $reader.ReadLine()
if ($line -eq $null) { break }
$pathInclude = ExtractInclude($line)
if ($report) {
if ($pathInclude -ne "") {
if (-not (Test-Path "$projectPath$pathInclude")) { $pathInclude }
}
} else {
if ($pathInclude -ne "") {
if (Test-Path "$projectPath$pathInclude") { $line }
} else {
$line
}
}
}
}
finally {
$reader.Close()
}
}
只需运行以下命令即可创建已清理的项目文件:
RemoveMissingInclude -path "D:\path\name.csproj" | Out-File D:\path\nameClean.csproj
可以在此博客文章中找到更多信息:http://devslice.net/2017/06/remove-missing-references-visual-studio/
答案 3 :(得分:0)
在2018年11月作答,因为像我这样的身体可能正面临这个问题。
问题:
我已经备份了项目中的一些文件夹。
由于文件是原始文件的副本,因此引用了函数定义。
现在,当我尝试从函数调用中打开函数定义时,正在打开备份文件夹中的一个。
删除备份文件夹后,显示错误:xyz.php
文件未找到,请创建一个。
解决方案:
转到资源管理器中的文件夹,
点击刷新图标。
重新启动Visual Studio代码。
答案 4 :(得分:0)
在资源管理器中打开项目,找到扩展名为'.vcxproj'的文件,然后删除要从中删除的文件
答案 5 :(得分:-1)
我为此制作了一个非常简单的控制台应用程序:
using System;
using System.IO;
using System.Collections.Generic;
namespace CleanProject
{
class Program
{
static void Main(string[] args)
{
var newFile = new List<string>();
if (args.Length == 0)
{
Console.WriteLine("Please specify the project full path as an argument");
return;
}
var projFile = args[0];
if (!File.Exists(projFile))
{
Console.WriteLine("The specified project file does not exist: {0}", projFile);
return;
}
if (!projFile.ToLowerInvariant().EndsWith(".csproj"))
{
Console.WriteLine("The specified does not seem to be a project file: {0}", projFile);
return;
}
Console.WriteLine("Started removing missing files from project:", projFile);
var newProjFile = Path.Combine(Path.GetDirectoryName(projFile), Path.GetFileNameWithoutExtension(projFile) + ".Clean.csproj");
var lines = File.ReadAllLines(projFile);
var projectPath = Path.GetDirectoryName(projFile);
for(var i = 0; i < lines.Length; i++)
{
var line = lines[i];
if (!line.Contains("<Content Include=\"") && !line.Contains("<None Include=\""))
{
newFile.Add(line);
}
else
{
var start = line.IndexOf("Include=\"") + "Include=\"".Length;
var end = line.LastIndexOf("\"");
var path = line.Substring(start, end - start);
if (File.Exists(Path.Combine(projectPath, path)))
{
newFile.Add(line);
}
else
{
if (!line.EndsWith("/>")) // I'm assuming it's only one line inside the tag
i += 2;
}
}
}
File.WriteAllLines(newProjFile, newFile);
Console.WriteLine("Finished removing missing files from project.");
Console.WriteLine("Cleaned project file: {0}", newProjFile);
}
}
}