Tôi tự hỏi nếu có ai biết một phần mở rộng bật lên cảnh báo nếu bạn kéo tệp vào thư mục khác thông qua trình khám phá giải pháp VS 2010. Nhiều lần tôi sẽ được trên một tập tin và máy tính của tôi có thể tụt hậu trong một giây và tất cả của một bất ngờ tập tin bây giờ là trong một số thư mục khác và tôi thậm chí có thể không nhận thấy nó.Kéo tập tin cảnh báo mở rộng VS 2010?
Trả lời
Có một tiện ích Visual Studio có sẵn được gọi là VSCommands 2010 có tính năng Ngăn tình cờ Kéo & Thả trong Solution Explorer.
Sửa Tính năng này là một phần của gói Pro mà không phải là miễn phí.
Nó không phải là miễn phí. Câu hỏi mua sắm hút. –
@Hans Bạn đúng - Tôi đã cập nhật câu trả lời của mình. – shamp00
Tôi không biết phần mở rộng Visual Studio miễn phí có thể làm điều đó, nhưng đây là mẫu C# của Addin thể hiện cách móc vào Visual Studio toàn cầu xóa & đổi tên quản lý tệp. Nó dựa trên giao diện IVsTrackProjectDocumentsEvents2.
Bạn sẽ phải mở rộng hai phương pháp OnQueryxxx cho phù hợp với nhu cầu của mình.
using System;
using System.Diagnostics;
using EnvDTE;
using EnvDTE80;
using Extensibility;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
namespace MyAddin1
{
public class Connect : IDTExtensibility2, IVsTrackProjectDocumentsEvents2
{
private uint _trackerCookie;
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
// the Addin project needs assembly references to Microsoft.VisualStudio.Shell, Microsoft.VisualStudio.Shell.Interop && Microsoft.VisualStudio.OLE.Interop
// any version should do
ServiceProvider sp = new ServiceProvider((Microsoft.VisualStudio.OLE.Interop.IServiceProvider)_applicationObject);
IVsTrackProjectDocuments2 tracker = (IVsTrackProjectDocuments2)sp.GetService(typeof(SVsTrackProjectDocuments));
// ask VS to notify us of files & directories changes
tracker.AdviseTrackProjectDocumentsEvents(this, out _trackerCookie);
}
public void OnDisconnection(ext_DisconnectMode disconnectMode, ref Array custom)
{
if (_trackerCookie != 0)
{
// we quit, tell VS not to notify us anymore
ServiceProvider sp = new ServiceProvider((Microsoft.VisualStudio.OLE.Interop.IServiceProvider)_applicationObject);
IVsTrackProjectDocuments2 tracker = (IVsTrackProjectDocuments2)sp.GetService(typeof(SVsTrackProjectDocuments));
tracker.UnadviseTrackProjectDocumentsEvents(_trackerCookie);
_trackerCookie = 0;
}
}
public int OnQueryRenameFiles(IVsProject pProject, int cFiles, string[] rgszMkOldNames, string[] rgszMkNewNames, VSQUERYRENAMEFILEFLAGS[] rgFlags, VSQUERYRENAMEFILERESULTS[] pSummaryResult, VSQUERYRENAMEFILERESULTS[] rgResults)
{
Trace.WriteLine("OnQueryRenameFiles pProject:" + pProject + " old[0]:" + rgszMkOldNames[0] + " new[0]:" + rgszMkNewNames[0]);
// TODO: implement this (I have assumed cFiles is 1 here)
if (!NotRenameOk(old[0], new[0])
{
rgResults[0] = VSQUERYRENAMEFILERESULTS.VSQUERYRENAMEFILERESULTS_RenameNotOK; // nope, it's not ok
}
return 0;
}
public int OnQueryRemoveFiles(IVsProject pProject, int cFiles, string[] rgpszMkDocuments, VSQUERYREMOVEFILEFLAGS[] rgFlags, VSQUERYREMOVEFILERESULTS[] pSummaryResult, VSQUERYREMOVEFILERESULTS[] rgResults)
{
Trace.WriteLine("OnQueryRemoveFiles pProject:" + pProject + " file[0]:" + rgpszMkDocuments[0]);
// TODO: needs to be implemented, use rgResults to tell VS if it's ok or not
return 0;
}
// other IVsTrackProjectDocumentsEvents2 methods implementation omitted for brevity...
không ... hoàn toàn ... chắc chắn cách bắt đầu sử dụng mã này. Bạn có thể liên kết tôi với bất kỳ dự án mẫu/ví dụ/tài nguyên có thể áp dụng nào để thực hiện với cách thêm mã vs2010 không? – perfectionist
@perfectionist - Bạn có thể sử dụng Visual Studio để tạo một addin như vậy: chỉ cần chọn Dự án mới/Các loại dự án/Mở rộng và Visual Studio bổ trợ, sau đó sao chép dán mã. Tuy nhiên, nếu bạn chưa có nhà phát triển, bạn sẽ không thể triển khai hoạt động của OnQueryRename/Remove ... –
Được rồi, có vẻ như điều này có thể khả thi - bạn chắc chắn đã cho tôi điều gì đó để làm về vấn đề này, vì vậy, bạn được trao tặng tiền thưởng. Huzzah. Tôi sẽ đăng lại câu hỏi này với kết quả. – perfectionist
- 1. Thêm phần mở rộng tập tin vào tập tin mở rộng ít hơn
- 2. ms mở rộng tập tin văn phòng
- 3. Mở rộng tập tin kiểm tra PHP
- 4. Lấy phần mở rộng tập tin (basename?)
- 5. Visual Studio 2010 - Cảnh báo chỉ hiển thị cho tập tin tích cực
- 6. Ngăn kéo mở rộng Vector
- 7. VS 2010 không mở file CSS
- 8. Mở rộng Visual Studio 2010 mở rộng mã
- 9. dấu ngoặc kép vs mở rộng dấu hoa thị tên tập tin trong Bash
- 10. Windows 7 tập tin mở rộng liên kết
- 11. Cảnh báo bảo mật khi mở tập tin từ mạng chia sẻ
- 12. Cách tìm phần mở rộng của một tập tin?
- 13. Xóa thư mục con và phần mở rộng tập tin
- 14. Regex để có được phần mở rộng tập tin
- 15. Tải ImageFormat từ Tiện ích mở rộng Tập tin
- 16. Hủy bỏ phần mở rộng của một tập tin
- 17. Sqlite3 tập tin cơ sở dữ liệu mở rộng
- 18. Android libs tập tin mở rộng apk vấn đề
- 19. Bắt mở rộng của tập tin trong FileUpload kiểm soát
- 20. asp.net mvc HttpPostedFileBase nhận phần mở rộng tập tin
- 21. Get Tên tập tin Nếu không mở rộng bằng Python
- 22. Tải phần mở rộng tập tin bằng ngôn ngữ C
- 23. Batch: Hủy bỏ phần mở rộng tập tin
- 24. Loại bỏ .php phần mở rộng tập tin với tập tin .htaccess
- 25. PHP tập tin liệt kê nhiều phần mở rộng tập tin
- 26. Codeigniter nhiều tập tin tải lên messes mở rộng tập tin
- 27. Lưu tập tin bằng ứng dụng mac - mở rộng tập tin
- 28. ruby bao gồm vs mở rộng
- 29. visual studio 2010 express + win sdk = không thể mở tập tin đầu vào 'kernel32.lib'
- 30. Phương thức mở của Ruby mở-uri mất hình ảnh mở rộng tập tin
Bạn có thể vui lòng chọn câu trả lời của shamp00 là chính xác và tặng anh ấy tiền thưởng không? Nếu không, câu hỏi này có thể bị đóng trước và anh ta sẽ mất giải thưởng tiền thưởng. – Will
Hmmm. Chobo2 - bạn đã không chỉ định "miễn phí" như là một phần của tiêu chuẩn cho câu hỏi - nhưng có lẽ bạn đã đặt tiền thưởng và nói "miễn phí" sau khi câu trả lời không tự do được đăng? ... Cho dù bạn có trao tiền thưởng hay không, Tôi sẽ đăng một khoản tiền thưởng đại diện 100 cho ai đó để tìm tiện ích mở rộng miễn phí - trên một câu hỏi mới nếu bạn đóng câu hỏi này. – perfectionist
Không Tôi đã đăng tiền thưởng trước khi bất kỳ câu trả lời nào có thể được đưa ra (do đó tại sao tôi không bao giờ chỉnh sửa câu hỏi ban đầu của mình). Tôi không có kế hoạch đóng câu hỏi này vì tôi thực sự muốn tìm phần mở rộng này (miễn phí - sẽ không trả $ 50 cho VSCommands cho một tính năng và vì vậy tại sao tôi không tặng thưởng cho shamp00 như một lựa chọn trả tiền chỉ là cách để nhiều cho một tính năng mà tôi yêu cầu.) – chobo2