如何使用沙盒控制台应用程序(Visual Studio 2012)停止.exe的文件锁定

布赖恩·奥格登

从字面上看,我认为这是我所面临的唯一技术挑战,至今我还没有找到解决的方法。

使用Visual Studio 2012专业版(也发生在Visual Studio 2010中),我将使用一个简单的ConsoleApplication来测试代码,完成编码测试,便笺本或Sandbox(如果需要)。对于我一生,我无法阻止错误:

错误12无法将文件“ obj \ x86 \ Debug \ ConsoleApplication.exe”复制到“ bin \ Debug \ ConsoleApplication.exe”。该进程无法访问文件“ bin \ Debug \ ConsoleApplication.exe”,因为它正在被另一个进程使用。控制台应用程序


错误11无法将“ obj \ x86 \ Debug \ ConsoleApplication.exe”复制到“ bin \ Debug \ ConsoleApplication1.exe”。重试计数超过10。失败。ConsoleApplication1

我有Process Explorer,每次尝试关闭句柄时,都会得到以下信息:

在此处输入图片说明

因此,每次我进行简单的代码更改时,在Main正确退出后,我的Console.Application.exe就会被锁定,我只需要坐在那里等待一两分钟即可真正重建代码更改并进行测试。

有什么方法可以阻止这种情况的发生,Main线程自行处理处置,因此尝试手动处置,例如Application.Exit是徒劳的,请参见此处

class Program
{


    static void Main(string[] args)
    {
        var numbers = GetUniqueRandoms(new Random(), 10, 100);

        Console.WriteLine("Numbers before selection sort:");
        foreach (var number in numbers)
        {
            Console.Write("{0},", number);
        }
        Console.WriteLine();
        //selection sort
        var pos_min = 0;
        for (var i = 0; i < numbers.Length - 1; i++)
        {
            pos_min = i;
            for (var j = i + 1; j < numbers.Length; j++)
            {
                if (numbers[j] < numbers[i])
                    pos_min = j;
            }

            if (pos_min != i)
            {
                var temp = numbers[i];
                numbers[i] = numbers[pos_min];
                numbers[pos_min] = temp;
            }
        }

        Console.WriteLine("Numbers after selection sort:");
        foreach (var number in numbers)
        {
            Console.Write("{0},", number);
        }

    }

    static int[] GetUniqueRandoms(Random random, int count, int max)
    {
        var result = new List<int>(count);
        var set = new HashSet<int>();
        for (var i = 0; i < count; i++)
        {
            int num;

            do
            {
                num = random.Next(1, max);
            } while (!set.Add(num));

            result.Add(num);
        }
        return result.ToArray();
    }
}
布赖恩·奥格登

@AntoninLejesk的回答是一个很好的尝试,但对我没有用。我在这里找到了一个很好的答案:Visual Studio 2010生成文件锁定问题

您创建一个名为“ VisualStudioLockWorkaround”的ConsoleApplication.exe,并在预构建脚本中调用该exe,传递目标路径,就像一个超级按钮一样,对于解决方案而言,它的作用最大为@Godeke。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Windows窗体应用程序按钮在Visual Studio 2010中运行控制台文件?

来自分类Dev

C#很小的控制台应用程序(Visual Studio 2012)中的默认线程

来自分类Dev

在Visual Studio 2012中对C ++控制台应用程序进行单元测试

来自分类Dev

Windows 8的Visual Studio 2012不显示Win32控制台应用程序选项

来自分类Dev

Visual Studio 2015“窃取”应用程序的控制台

来自分类Dev

控制台应用程序完成退出(Visual Studio)

来自分类Dev

如何从Visual Studio 2012获取已安装应用程序的文件夹路径

来自分类Dev

如何在Visual Studio 2012应用程序中包括.cat和.inf文件

来自分类Dev

如何从Visual Studio 2013调试.NET控制台应用程序

来自分类Dev

如何在Visual Studio控制台应用程序中终止脚本

来自分类Dev

如何从Visual Studio 2013调试.NET控制台应用程序

来自分类Dev

如何更改控制台应用程序Visual Studio的窗口标题

来自分类Dev

在控制台应用程序(Visual Studio)中使用VTK-访问冲突

来自分类Dev

WindowsForm应用程序在Visual Studio中生成控制台应用程序

来自分类Dev

Visual Studio 2012程序包管理器控制台错误

来自分类Dev

使用Visual Studio Express 2012的一键式应用程序中未包含XML文件

来自分类Dev

如何为自包含的控制台应用程序Visual Studio C#创建.msi安装程序

来自分类Dev

程序包C控制台应用程序(Visual Studio '13)

来自分类Dev

NSServices:“如何使用沙盒”应用程序在Finder中创建新文件

来自分类Dev

如何获取.Net Core控制台应用程序.exe文件所在目录的路径?

来自分类Dev

如何在C#控制台应用程序中过滤文件类型,例如.exe

来自分类Dev

使用批处理文件填写exe控制台应用程序的多个输入

来自分类Dev

调试模式停止后如何查看Visual Studio 2015 Javascript控制台?

来自分类Dev

调试模式停止后如何查看Visual Studio 2015 Javascript控制台?

来自分类Dev

从Visual Studio运行控制台应用程序时避免“按任意键继续”

来自分类Dev

启动时Visual Studio Community 2015控制台应用程序错误

来自分类Dev

更改控制台应用程序图标(Visual Studio代码)

来自分类Dev

从Visual Studio运行控制台应用程序时避免“按任意键继续”

来自分类Dev

Visual Studio最小化表单应用程序并显示控制台窗口

Related 相关文章

  1. 1

    如何使用Windows窗体应用程序按钮在Visual Studio 2010中运行控制台文件?

  2. 2

    C#很小的控制台应用程序(Visual Studio 2012)中的默认线程

  3. 3

    在Visual Studio 2012中对C ++控制台应用程序进行单元测试

  4. 4

    Windows 8的Visual Studio 2012不显示Win32控制台应用程序选项

  5. 5

    Visual Studio 2015“窃取”应用程序的控制台

  6. 6

    控制台应用程序完成退出(Visual Studio)

  7. 7

    如何从Visual Studio 2012获取已安装应用程序的文件夹路径

  8. 8

    如何在Visual Studio 2012应用程序中包括.cat和.inf文件

  9. 9

    如何从Visual Studio 2013调试.NET控制台应用程序

  10. 10

    如何在Visual Studio控制台应用程序中终止脚本

  11. 11

    如何从Visual Studio 2013调试.NET控制台应用程序

  12. 12

    如何更改控制台应用程序Visual Studio的窗口标题

  13. 13

    在控制台应用程序(Visual Studio)中使用VTK-访问冲突

  14. 14

    WindowsForm应用程序在Visual Studio中生成控制台应用程序

  15. 15

    Visual Studio 2012程序包管理器控制台错误

  16. 16

    使用Visual Studio Express 2012的一键式应用程序中未包含XML文件

  17. 17

    如何为自包含的控制台应用程序Visual Studio C#创建.msi安装程序

  18. 18

    程序包C控制台应用程序(Visual Studio '13)

  19. 19

    NSServices:“如何使用沙盒”应用程序在Finder中创建新文件

  20. 20

    如何获取.Net Core控制台应用程序.exe文件所在目录的路径?

  21. 21

    如何在C#控制台应用程序中过滤文件类型,例如.exe

  22. 22

    使用批处理文件填写exe控制台应用程序的多个输入

  23. 23

    调试模式停止后如何查看Visual Studio 2015 Javascript控制台?

  24. 24

    调试模式停止后如何查看Visual Studio 2015 Javascript控制台?

  25. 25

    从Visual Studio运行控制台应用程序时避免“按任意键继续”

  26. 26

    启动时Visual Studio Community 2015控制台应用程序错误

  27. 27

    更改控制台应用程序图标(Visual Studio代码)

  28. 28

    从Visual Studio运行控制台应用程序时避免“按任意键继续”

  29. 29

    Visual Studio最小化表单应用程序并显示控制台窗口

热门标签

归档