Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 拖动文件警告扩展名VS 2010?_Visual Studio_Visual Studio 2010 - Fatal编程技术网

Visual studio 拖动文件警告扩展名VS 2010?

Visual studio 拖动文件警告扩展名VS 2010?,visual-studio,visual-studio-2010,Visual Studio,Visual Studio 2010,我想知道是否有人知道,如果您通过VS2010解决方案资源管理器将文件拖到另一个文件夹,会弹出警告的扩展名。很多时候,我会在一个文件上,而我的计算机可能会延迟一秒钟,突然间,该文件现在位于某个其他文件夹中,我甚至可能没有注意到它。有一个名为Visual Studio的扩展名,它具有防止在解决方案资源管理器中意外拖放的功能 编辑 该功能是Pro软件包的一部分,不是免费的 我不知道有哪种免费的VisualStudio扩展可以做到这一点,但这里有一个插件的C#示例,演示如何连接到VisualStudi

我想知道是否有人知道,如果您通过VS2010解决方案资源管理器将文件拖到另一个文件夹,会弹出警告的扩展名。很多时候,我会在一个文件上,而我的计算机可能会延迟一秒钟,突然间,该文件现在位于某个其他文件夹中,我甚至可能没有注意到它。

有一个名为Visual Studio的扩展名,它具有防止在解决方案资源管理器中意外拖放的功能

编辑
该功能是Pro软件包的一部分,不是免费的

我不知道有哪种免费的VisualStudio扩展可以做到这一点,但这里有一个插件的C#示例,演示如何连接到VisualStudio全局删除和重命名文件管理。它基于接口

您必须扩展两个OnQueryxxx方法以满足您的需要

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...

这不是免费的。购物问题很糟糕。你能选择shamp00的答案是否正确并奖励他吗?否则,这个问题可能会提前结束,他将失去悬赏奖。Chobo2-你没有指定“自由”作为问题标准的一部分-但也许你在非自由答案发布后,放置了赏金并说“自由”?。。。无论你是否奖励奖金,如果你关闭这个问题,我将发布一个100代表的奖金,让某人找到一个免费的扩展-在一个新问题上。不,我在给出任何可能的答案之前发布了奖金(因此我从未编辑过我的原始问题)。我没有计划结束这个问题,因为我真的很想找到这个扩展(这是免费的-不会为一个功能的VSCommands支付50美元,因此为什么我没有奖励shamp00作为一个付费选项,这只是我要求的一个功能的一种方式。)不…完全。。。确定如何开始使用此代码。您可以将我链接到任何适用的示例项目/示例/资源,以了解如何编写vs2010加载项吗?@Perfectisit-您可以使用Visual Studio创建这样的加载项:只需选择新项目/其他项目类型/可扩展性和Visual Studio加载项,然后复制粘贴代码。但是,如果您手头没有开发人员,您将无法实现OnQueryRename/Remove的工作……好吧,看起来这可能是可行的——您肯定已经给了我一些解决问题的方法,因此您获得了奖金。胡扎。我会把结果发回这个问题。