簡體   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