Я открыл Visual Studio, создал консольное приложение, добавил пару строк для тестирования метода Uri и нажал кнопку Play (Debug). Получена ошибка отказа в доступе.
Итак, я вошел в выходной каталог и увидел, что исполняемый файл появляется при сборке проекта. Однако, когда я дважды щелкаю по нему в проводнике, чтобы запустить его, он удаляется сам!
Это объясняет ошибку отказа в доступе при попытке отладки, потому что приложение удаляет себя сразу после запуска. Если я копирую его из каталога на свой рабочий стол и запускаю, он также удаляется там.
Зачем Visual Studio создавать файл с таким поведением? Что заставляет файл удаляться при запуске?
Вот и все приложение. Если я удалю все строки, кроме Console.ReadLine, все в порядке. Но эта конфигурация, и даже с другими URL-адресами, приложение удаляет себя.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp9
{
class Program
{
static void Main(string[] args)
{
var uri = new Uri("https://facebook.com/");
var s = uri.GetLeftPart(UriPartial.Authority);
int i = 0;
Console.ReadLine();
}
}
}
Нет, я думаю, что в вашем коде есть что-то, что делает это. Кстати, объяснив проблему без соответствующего кода, непросто разобраться в проблеме.
Нет, но это код, вызывающий это. Хотя понятия не имею, почему. Уж точно не так, как предполагалось. Я выложу.
Мне любопытно, может ли кто-нибудь еще воспроизвести это.
Я никогда ничего подобного не видел. Может ли быть ошибка в Uri или Uri.GetLeftPart, из-за которой исполняемый файл удаляет себя? Я использую самую последнюю версию Visual Studio, ориентированную на .NET 4.6.1. Это простое консольное приложение.
Просто попробовал. Ни за что. Приложение есть и не исчезает. Вы проверяли, запущены ли у вас скрипты сборки?
Скриптов сборки нет. То же самое происходит и с другими людьми здесь, в моем офисе, хотя они не заметили, как файл удаляется сам. Странно, что изменение кода путем удаления первых двух или трех строк останавливает возникновение проблемы, а их повторное добавление вызывает ее повторный запуск.
Это строго первая строка, которая вызывает это: var uri = new Uri ("facebook.com/ "). При наличии этой строки файл удаляется сам. Никакие другие строки не имеют такого эффекта.
Я подозреваю, что это слишком усердный антивирусный сканер ... Или корпоративный белый список исполняемых файлов ...
Я бы поддержал теорию сканера вирусов. Похоже, эвристический антивирусный сканер расстраивается из-за доступа к URL-адресу. Проверьте очередь карантина вашего антивирусного сканера.
Ага. Вот и все! Я загрузил его на VirusTotal. Протестировано для всего, ЗА ИСКЛЮЧЕНИЕМ CloudStrikeFalcon, который, как я знаю, я использую на этой машине. Очевидно, это ложноположительный результат. Приятно знать, что он просто удаляет файл без каких-либо предупреждений или указаний.
Сканер вирусов незаметно удалял файл. Очевидно, это ложное срабатывание, поскольку это всего лишь базовое консольное приложение. Кто-то предположил, что это может быть эвристический сканер вирусов, и, конечно же, когда я просканировал файл на VirusTotal, антивирусный сканер, который я точно знаю, установлен на этой машине, считает, что файл является проблемой.
Вы написали код, который случайно удаляет файлы?