繁体   English   中英

Visual Studio 2015解决方案资源管理器不刷新文件?

[英]Visual studio 2015 solution explorer doesn't refresh files?

当我更改磁盘上的文件时,我的Visual Studio 2015解决方案资源管理器不刷新,并且(据我所见)没有刷新按钮了。

在资源管理器中,一切看起来都应该如此,并且在执行我的“刷新”方法后,所有文件再次显示。

到目前为止我的解

  1. 卸载并重新加载项目
  2. 刷新Visual Studio

当使用gulp运行构建时,这尤其令人讨厌,因为gulp正在添加,更改和删除文件。

我错过了一些明显的东西吗

PS。 它与选项“显示所有文件”无关。 它也不显示为“透明”未包含文件。

单击解决方案资源管理器顶部的显示所有文件图标。 然后,您可以选择要包含在项目中的文件。

Solution Explorer截图

看到答案:

Visual Studio解决方案资源管理器中的刷新按钮无效

为了弄清楚如何做到这一点,我已经打了很多脑筋,答案是我认为Visual Studio不会处理这种情况。

我所做的是一种解决方法而不是最佳解决方案,但我会在这里发布以防万一它可以帮助其他人。

您可以触发Visual Studio注意文件更改,如下所示:

  • 在Visual Studio外部添加或删除文件时,请触摸项目文件
  • Visual Studio会注意到这一点并弹出一个确认对话框,询问您是否要重新加载项目
  • 单击Reload / Reload All,重新加载项目,文件修改现在显示在Solution Explorer上

我使用两个节点包。 Chokidar观看文件系统事件和触摸触摸项目文件

Chokidar很不错,你可以设置要观看的文件和文件夹,要忽略的内容等等。 触摸提供了非常简单的方法来更改文件的时间戳。

这是一个可以调整以满足您需求的工作代码示例:

var chokidar = require('chokidar');
var touch = require("touch");

console.log("Starting - Initial files are ignored");

var projectFile = "C:\\projects\\GitHub\\testing-touch\\TestingTouch\\TestingTouch.csproj";                   

var watcher = chokidar.watch('C:\\projects\\GitHub\\testing-touch\\TestingTouch\\tests', {
  ignored: /[\\/\\]\./,
  ignoreInitial: true,
  persistent: true  
});

var log = console.log.bind(console);

watcher
  .on('add', function(path) {
    log('File', path, 'has been added');
    touch.sync(projectFile, { time: new Date(), force: false });
  })
  .on('change', function(path) { log('File', path, 'has been changed'); })
  .on('unlink', function(path) { log('File', path, 'has been removed'); })
  // More events.
  .on('addDir', function(path) { log('Directory', path, 'has been added'); })
  .on('unlinkDir', function(path) { log('Directory', path, 'has been removed'); })
  .on('error', function(error) { log('Error happened', error); })
  .on('ready', function() { log('Initial scan complete. Ready for changes.'); })
  .on('raw', function(event, path, details) { log('Raw event info:', event, path, details); })

// 'add', 'addDir' and 'change' events also receive stat() results as second
// argument when available: http://nodejs.org/api/fs.html#fs_class_fs_stats
watcher.on('change', function(path, stats) {
  if (stats) console.log('File', path, 'changed size to', stats.size);
});

此解决方法的负面影响是您必须设置文件观察器,并且您需要单击恼人的确认对话框。

在尝试将预先存在的“assets”文件夹添加到Visual Studio 2015中的Web项目时,我也遇到了类似的情况。

  1. 右键单击解决方案资源管理器中的项目项,然后创建一个新文件夹,例如'assets'

  2. 在Windows资源管理器中,将要传输的文件夹的内容拖到VS Solution Explorer窗口中的新“assets”文件夹中,然后等待复制过程完成。

  3. 单击解决方案资源管理器顶部工具栏上的“显示所有文件”图标。 您应该看到您的文件夹结构,包括您需要的文件。

  4. 突出显示文件/文件夹,右键单击并选择“包含在项目中”。

这对我有用,我希望它可以帮助任何有同样问题的人。

“视图”标签底部有一个刷新选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM