Visual studio не может начать отладку так как отсутствует целевой объект отладки
Перейти к содержимому

Visual studio не может начать отладку так как отсутствует целевой объект отладки

  • автор:

Visual Studio не может начать отладку, так как отсутствует целевой объект отладки

Не удается начать отладку, так как отсутствует объект отладки
Не удается начать отладку, так как отсутствует объект отладки "f:\users\user\documents\visual.

Ошибка «не удается начать отладку так как отсутствует объект отладки»
Я все делаю в VS17 Я в новосозданный мною проект WindowsForms (без кода) закидываю код который.

Не удается совершить отладку. Отсутствует объект отладки
Не удается совершить отладку так как отсутствует обьект отладки. В чем может бить проблема, а то.

Ошибка при компиляции: «Не удается начать отладку так как отсутвует цель отладки»
Здравствуйте, при запуске проекта выдает такое сообщение: "Не удается начать отладку так как.

Регистрация: 24.02.2019
Сообщений: 4

P.S. Код ошибки:CS0041
Описание:Неожиданная ошибка при записи информации отладки — «Не удается загрузить DLL «Microsoft DiaSysReader.Native.amd64.dll»:Не найдена указанная процедура.(Исключение из HRESULT:0x8007007F)».

Как решить ошибки, появившиеся после написания программы по переводу слов?

Есть рабочий код, но появились ошибки при отладке. Да и по самой программе очень много проблем.

Не удается начать отладку так как отсутствует объект отладки.

Серьезность Код Описание Проект Файл Строка Столбец Состояние подавления
Ошибка CS0103 Имя «Properties» не существует в текущем контексте. WindowsFormsApplication4 c:\users\гулия\documents\visual studio 2015\Projects\WindowsFormsApplication4\WindowsFormsApplication4\Program.cs 20 29 Активно

Ошибка CS0103 Имя «File» не существует в текущем контексте. WindowsFormsApplication4 c:\users\гулия\documents\visual studio 2015\Projects\WindowsFormsApplication4\WindowsFormsApplication4\Program.cs 20 17 Активно

Ошибка CS0103 Имя «Form1» не существует в текущем контексте. WindowsFormsApplication4 c:\users\гулия\documents\visual studio 2015\Projects\WindowsFormsApplication4\WindowsFormsApplication4\Program.cs 1 15 Активно

spoiler

using Model; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Windows.Forms; using System.Xml.Linq; namespace AppTranslator < public partial class Form1 : Form < //хранилище слов Dictionary store; public Form1() < InitializeComponent(); //если файл существует if (File.Exists(Properties.Settings.Default.Path)) //извлекаем из него информацию store = XMLHelper.Load(Properties.Settings.Default.Path); else //иначе создаем новый объект store = new Dictionary(); >//переключение режимов private void англорусскийToolStripMenuItem_Click(object sender, EventArgs e) < Properties.Settings.Default.Mode = Mode.EngRus.ToString(); русскоанглийскийToolStripMenuItem.Checked = false; англорусскийToolStripMenuItem.Checked = true; >private void русскоанглийскийToolStripMenuItem_Click(object sender, EventArgs e) < Properties.Settings.Default.Mode = Mode.EngRus.ToString(); англорусскийToolStripMenuItem.Checked = false; русскоанглийскийToolStripMenuItem.Checked = true; >private void загрузкаБДToolStripMenuItem_Click(object sender, EventArgs e) < //диалог для открытия файла var fd = new OpenFileDialog(); //ставим фильтр только на .xml файлы fd.Filter = "Xml files (.xml)|*.xml"; //если какой-то из файлов был выбран if (fd.ShowDialog() == DialogResult.OK) < //загружаем информацию store = XMLHelper.Load(fd.FileName); //сохраняем путь Properties.Settings.Default.Path = fd.FileName; >> private void добавитьСловоToolStripMenuItem_Click(object sender, EventArgs e) < var form = new AddWord(); //открываем диалоговую форму для добавления файла form.ShowDialog(); foreach (var record in form.Records) < //если значение уже есть в словаре добавляем новые переводы //в соответствующий список if (store.ContainsKey(record.Word)) foreach (var r in record.Values) store[record.Word].Values.Add(r); else //иначе добавляем новую запись store.Add(record.Word, record); >//сохраняем новую информацию в файл XMLHelper.Save(store, Properties.Settings.Default.Path); > private void button1_Click(object sender, EventArgs e) < //получаем слово для перевода var key = textBox1.Text.Trim().ToLower(); //если слово есть в хранилище выводим все варианты перевода if (store.ContainsKey(key)) textBox2.Text = string.Join(Environment.NewLine, store[key].Values); else < //проверяем что такое слово не встречается нигде в "вариантах" перевода var first = store.FirstOrDefault(pair =>pair.Value.Values.Contains(key)); if (first.Value != null) //если такое слово есть отображаем его textBox2.Text = first.Value.Word; else MessageBox.Show("Указанное слово отсутствует в словаре"); > > > > namespace Model < //вспомогательный класс для работы с xml public static class XMLHelper < //метод, отвечающие за получение информации из файле public static Dictionary Load(string path) < var xd = XDocument.Load(path); return xd.Element("root") //получаем корень .Elements("word")//возвращаем все элементы с указанным названием .Select(word =>new Record //преобразовываем XElement в тип записи ( word: (string)word.Attribute("value"), values: word.Elements("translation").Select(x => (string)x), mode: (Mode)Enum.Parse(typeof(Mode), (string)word.Attribute("mode")) )) //создаем словарь для быстрой проверки нахождения слова .ToDictionary(x => x.Word, val => val); > //сохранение инфорации в файл public static void Save(Dictionary dct, string path) < var xd = new XElement("root"); foreach (var val in dct.Values) < xd.Add(new XElement("word", new XAttribute("mode", val.Mode), new XAttribute("value", val.Word), val.Values.Select(t =>new XElement("translation", t)).ToArray() )); > xd.Save(path); > > > namespace AppTranslator < public partial class AddWord : Form < //список добавленных слов public List Records < get; set; >private Mode mode; public AddWord() < InitializeComponent(); Enum.TryParse(Properties.Settings.Default.Mode, out mode); Records = new List(); button1.Click += Button1_Click; button2.Click += Button2_Click; >//обработчики событий private void Button2_Click(object sender, EventArgs e) < this.Close(); >private void Button1_Click(object sender, EventArgs e) < //преобразуем слово введенное пользователем к нижнем регистру, а также удаляем начальные и конечные пробельные символы var word = textBox1.Text.Trim().ToLower(); var values = textBox2.Text //разбиваем строку из второго текстобокса по символу-разделителю .Split(new[] < "\n" >, StringSplitOptions.RemoveEmptyEntries) .Select(x => x.ToLower());//приводим к нижнему регистру //создаем запись var record = new Record(word, values, mode); //добавляем её в список Records.Add(record); //очищаем поля для ввода textBox1.Clear(); textBox2.Clear(); > > > namespace Model < //перечисление с возможными режимами public enum Mode < RusEng, EngRus >//класс запись, отвечает за одну запись в файл public class Record < //слово public string Word < get; private set; >//множество значений для перевода public HashSet Values < get; private set; >public Record(string word, IEnumerable values, Mode mode) < Word = word; Values = new HashSet(values); Mode = mode; >> > //режим public Mode Mode < get; private set; >>
  • Вопрос задан более трёх лет назад
  • 885 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 1
пофиг на чем писать

Он не может быть рабочим, если есть такие ошибки. По видимому не подключены библиотеки или не указаны ссылки на проект, или не указаны пространства имен.

Ответ написан более трёх лет назад
Нравится 1 8 комментариев
KAPJICOH @KAPJICOH Автор вопроса

появилась новая ошибка

Пространство имен не может напрямую включать в себя такие члены, как поля или методы.

Петр @Morpheus_God
KAPJICOH, Вы бы хоть кусочек кода показали.
KAPJICOH @KAPJICOH Автор вопроса

Петр, using Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using System.Xml.Linq;

namespace AppTranslator
public partial class Form1 : Form
//хранилище слов
Dictionary store;

public Form1()
InitializeComponent();
//если файл существует
if (File.Exists(Properties.Settings.Default.Path))
//извлекаем из него информацию
store = XMLHelper.Load(Properties.Settings.Default.Path);
else //иначе создаем новый объект
store = new Dictionary();
>
//переключение режимов
private void англорусскийToolStripMenuItem_Click(object sender, EventArgs e)
Properties.Settings.Default.Mode = Mode.EngRus.ToString();
русскоанглийскийToolStripMenuItem.Checked = false;
англорусскийToolStripMenuItem.Checked = true;
>
private void русскоанглийскийToolStripMenuItem_Click(object sender, EventArgs e)
Properties.Settings.Default.Mode = Mode.EngRus.ToString();
англорусскийToolStripMenuItem.Checked = false;
русскоанглийскийToolStripMenuItem.Checked = true;
>
private void загрузкаБДToolStripMenuItem_Click(object sender, EventArgs e)
//диалог для открытия файла
var fd = new OpenFileDialog();
//ставим фильтр только на .xml файлы
fd.Filter = «Xml files (.xml)|*.xml»;
//если какой-то из файлов был выбран
if (fd.ShowDialog() == DialogResult.OK)
//загружаем информацию
store = XMLHelper.Load(fd.FileName);
//сохраняем путь
Properties.Settings.Default.Path = fd.FileName;
>
>
private void добавитьСловоToolStripMenuItem_Click(object sender, EventArgs e)
var form = new AddWord();
//открываем диалоговую форму для добавления файла
form.ShowDialog();

foreach (var record in form.Records)
//если значение уже есть в словаре добавляем новые переводы
//в соответствующий список
if (store.ContainsKey(record.Word))
foreach (var r in record.Values)
store[record.Word].Values.Add(r);
else
//иначе добавляем новую запись
store.Add(record.Word, record);
>
//сохраняем новую информацию в файл
XMLHelper.Save(store, Properties.Settings.Default.Path);
>
private void button1_Click(object sender, EventArgs e)
//получаем слово для перевода
var key = textBox1.Text.Trim().ToLower();
//если слово есть в хранилище выводим все варианты перевода
if (store.ContainsKey(key))
textBox2.Text = string.Join(Environment.NewLine, store[key].Values);
else
//проверяем что такое слово не встречается нигде в «вариантах» перевода
var first = store.FirstOrDefault(pair => pair.Value.Values.Contains(key));
if (first.Value != null) //если такое слово есть отображаем его
textBox2.Text = first.Value.Word;
else
MessageBox.Show(«Указанное слово отсутствует в словаре»);
>
>
>
>

namespace Model
//вспомогательный класс для работы с xml
public static class XMLHelper
//метод, отвечающие за получение информации из файле
public static Dictionary Load(string path)
var xd = XDocument.Load(path);
return
xd.Element(«root») //получаем корень
.Elements(«word»)//возвращаем все элементы с указанным названием
.Select(word => new Record //преобразовываем XElement в тип записи
(
word: (string)word.Attribute(«value»),
values: word.Elements(«translation»).Select(x => (string)x),
mode: (Mode)Enum.Parse(typeof(Mode), (string)word.Attribute(«mode»))
))
//создаем словарь для быстрой проверки нахождения слова
.ToDictionary(x => x.Word, val => val);

>
//сохранение инфорации в файл
public static void Save(Dictionary dct, string path)
var xd = new XElement(«root»);

foreach (var val in dct.Values)
xd.Add(new XElement(«word»,
new XAttribute(«mode», val.Mode),
new XAttribute(«value», val.Word),
val.Values.Select(t => new XElement(«translation», t)).ToArray()
));
>
xd.Save(path);
>
>
>

namespace AppTranslator
public partial class AddWord : Form
//список добавленных слов
public List Records < get; set; >
private Mode mode;
public AddWord()
InitializeComponent();
Enum.TryParse(Properties.Settings.Default.Mode, out mode);

Records = new List();

button1.Click += Button1_Click;
button2.Click += Button2_Click;
>
//обработчики событий
private void Button2_Click(object sender, EventArgs e)
this.Close();
>
private void Button1_Click(object sender, EventArgs e)
//преобразуем слово введенное пользователем к нижнем регистру, а также удаляем начальные и конечные пробельные символы
var word = textBox1.Text.Trim().ToLower();
var values =
textBox2.Text //разбиваем строку из второго текстобокса по символу-разделителю
.Split(new[] < "\n" >, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.ToLower());//приводим к нижнему регистру
//создаем запись
var record = new Record(word, values, mode);
//добавляем её в список
Records.Add(record);
//очищаем поля для ввода
textBox1.Clear();
textBox2.Clear();
>
>
>

namespace Model
//перечисление с возможными режимами
public enum Mode < RusEng, EngRus >
//класс запись, отвечает за одну запись в файл
public class Record
//слово
public string Word < get; private set; >
//множество значений для перевода
public HashSet Values < get; private set; >
public Record(string word, IEnumerable values, Mode mode)
Word = word;
Values = new HashSet(values);
Mode = mode;
>
>
>
//режим
public Mode Mode

Петр @Morpheus_God

KAPJICOH, namespace Model
//вспомогательный класс для работы с xml
public static class XMLHelper
Я не вижу здесь класса. Вот и ошибка. Вы в пространстве имен описали класс, но его я не вижу.
Вероятно отсюда и ошибка о которой вы написали в комментариях.

KAPJICOH @KAPJICOH Автор вопроса
Петр,
Пространство имен «Model» уже содержит определение для «XMLHelper». WindowsFormsApplication4
KAPJICOH @KAPJICOH Автор вопроса

using Model;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using System.Xml.Linq;

namespace AppTranslator
public partial class Form1 : Form
//хранилище слов
Dictionary store;

public Form1()
InitializeComponent();
//если файл существует
if (File.Exists(Properties.Settings.Default.Path))
//извлекаем из него информацию
store = XMLHelper.Load(Properties.Settings.Default.Path);
else //иначе создаем новый объект
store = new Dictionary();
>
//переключение режимов
private void англорусскийToolStripMenuItem_Click(object sender, EventArgs e)
Properties.Settings.Default.Mode = Mode.EngRus.ToString();
русскоанглийскийToolStripMenuItem.Checked = false;
англорусскийToolStripMenuItem.Checked = true;
>
private void русскоанглийскийToolStripMenuItem_Click(object sender, EventArgs e)
Properties.Settings.Default.Mode = Mode.EngRus.ToString();
англорусскийToolStripMenuItem.Checked = false;
русскоанглийскийToolStripMenuItem.Checked = true;
>
private void загрузкаБДToolStripMenuItem_Click(object sender, EventArgs e)
//диалог для открытия файла
var fd = new OpenFileDialog();
//ставим фильтр только на .xml файлы
fd.Filter = «Xml files (.xml)|*.xml»;
//если какой-то из файлов был выбран
if (fd.ShowDialog() == DialogResult.OK)
//загружаем информацию
store = XMLHelper.Load(fd.FileName);
//сохраняем путь
Properties.Settings.Default.Path = fd.FileName;
>
>
private void добавитьСловоToolStripMenuItem_Click(object sender, EventArgs e)
var form = new AddWord();
//открываем диалоговую форму для добавления файла
form.ShowDialog();

foreach (var record in form.Records)
//если значение уже есть в словаре добавляем новые переводы
//в соответствующий список
if (store.ContainsKey(record.Word))
foreach (var r in record.Values)
store[record.Word].Values.Add(r);
else
//иначе добавляем новую запись
store.Add(record.Word, record);
>
//сохраняем новую информацию в файл
XMLHelper.Save(store, Properties.Settings.Default.Path);
>
private void button1_Click(object sender, EventArgs e)
//получаем слово для перевода
var key = textBox1.Text.Trim().ToLower();
//если слово есть в хранилище выводим все варианты перевода
if (store.ContainsKey(key))
textBox2.Text = string.Join(Environment.NewLine, store[key].Values);
else
//проверяем что такое слово не встречается нигде в «вариантах» перевода
var first = store.FirstOrDefault(pair => pair.Value.Values.Contains(key));
if (first.Value != null) //если такое слово есть отображаем его
textBox2.Text = first.Value.Word;
else
MessageBox.Show(«Указанное слово отсутствует в словаре»);
>
>
>
>

namespace Model
//вспомогательный класс для работы с xml
public static class XMLHelper
//метод, отвечающие за получение информации из файле
public static Dictionary Load(string path)
var xd = XDocument.Load(path);
return
xd.Element(«root») //получаем корень
.Elements(«word»)//возвращаем все элементы с указанным названием
.Select(word => new Record //преобразовываем XElement в тип записи
(
word: (string)word.Attribute(«value»),
values: word.Elements(«translation»).Select(x => (string)x),
mode: (Mode)Enum.Parse(typeof(Mode), (string)word.Attribute(«mode»))
))
//создаем словарь для быстрой проверки нахождения слова
.ToDictionary(x => x.Word, val => val);

>
//сохранение инфорации в файл
public static void Save(Dictionary dct, string path)
var xd = new XElement(«root»);

foreach (var val in dct.Values)
xd.Add(new XElement(«word»,
new XAttribute(«mode», val.Mode),
new XAttribute(«value», val.Word),
val.Values.Select(t => new XElement(«translation», t)).ToArray()
));
>
xd.Save(path);
>
>
>

namespace AppTranslator
public partial class AddWord : Form
//список добавленных слов
public List Records < get; set; >
private Mode mode;
public AddWord()
InitializeComponent();
Enum.TryParse(Properties.Settings.Default.Mode, out mode);

Records = new List();

button1.Click += Button1_Click;
button2.Click += Button2_Click;
>
//обработчики событий
private void Button2_Click(object sender, EventArgs e)
this.Close();
>
private void Button1_Click(object sender, EventArgs e)
//преобразуем слово введенное пользователем к нижнем регистру, а также удаляем начальные и конечные пробельные символы
var word = textBox1.Text.Trim().ToLower();
var values =
textBox2.Text //разбиваем строку из второго текстобокса по символу-разделителю
.Split(new[] < "\n" >, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.ToLower());//приводим к нижнему регистру
//создаем запись
var record = new Record(word, values, mode);
//добавляем её в список
Records.Add(record);
//очищаем поля для ввода
textBox1.Clear();
textBox2.Clear();
>
>
>

namespace Model
//вспомогательный класс для работы с xml
public static class XMLHelper
//перечисление с возможными режимами
public enum Mode < RusEng, EngRus >
//класс запись, отвечает за одну запись в файл
public class Record
//слово
public string Word < get; private set; >
//множество значений для перевода
public HashSet Values < get; private set; >
public Record(string word, IEnumerable values, Mode mode)
Word = word;
Values = new HashSet(values);
Mode = mode;
>
>
>
//режим
public Mode Mode < get; private set; >>

Visual Studio 2010. Проблема отладки проекта

Нажмите на изображение для увеличения Название: Ошибка.JPG Просмотров: 787 Размер: 19.7 Кб ID: 1958

При построении выдает ошибку:

«Не удается начать отладку, так как отсутствует цель отладки C:\Documents and Settings\. \Visual Studio 2010\Projects\. \bin\debug\Proga.exe>.Выполните построение проекта и попробуйте еще раз, или установите свойства OutputPath и AssemblyName так, чтобы они указывали на правильное расположение целевой сборки»

Решение проблемы.
Для этого вручную нужно скомпилировать файлы кода. Компилятор csc.exe.
Откройте программу Notepad (Блокнот), выбрав в меню Start (Пуск) пункт All Programs1 — Accessories — Notepad (Все программы — Стандартные — Блокнот), и введите следующее типичное определение класса на С#:

using System; class TestApplication < static void Main() < Console.WriteLine("Привет!"); Console.ReadLine(); >>

После окончания ввода сохраните файл под именем TestApplication.cs.

Указание целевых входных и выходных параметров

Первым делом важно разобраться с тем, как указывать имя и тип создаваемой сборки (т.е., например, консольное приложение по имени MyShell.exe, библиотека кода по имени MathLib.dll или приложение Windows Presentation Foundation по имени Halo8 .ехе). Каждый из возможных вариантов имеет соответствующий флаг, который нужно передать компилятору csc.ехе в виде параметра командной строки.
Чтобы скомпилировать TestApplication.cs в консольное приложение TestApplication.exe, перейдите в каталог (для этого выберите в меню Пуск—Программы—
Нажмите на изображение для увеличения Название: 10+.png Просмотров: 1087 Размер: 29.4 Кб ID: 1972), в котором был сохранен файл исходного кода (с помощью флага cd) и введите следующую команду:
Нажмите на изображение для увеличения Название: 1.jpg Просмотров: 1359 Размер: 13.7 Кб ID: 1959
Обратите внимание, что здесь C:\myProject — это путь к папке, в которой хранится файл TestApplication.cs. Так же обратите внимание, что здесь флаг /out не был указан явным образом, поэтому исполняемым файл получит имя TestApplication.ехе из-за того, что именем входного файла является TestApplication. Кроме того, для почти всех принимаемых компилятором С# флагов поддерживаются сокращенные версии написания, наподобие /t вместо /target (полный список которых можно увидеть, введя в командной строке команду csc -?).
Теперь можно попробовать запустить приложение TestApplication.ехе из командной строки, введя имя его исполняемого файла:
Нажмите на изображение для увеличения Название: 2.jpg Просмотров: 835 Размер: 18.4 Кб ID: 1960

Добавление ссылок на внешние сборки

Посмотрим, как скомпилировать приложение, в котором используются типы, определенные в отдельной сборке .NET.
Модифицируем приложение TestApplication так, чтобы в нем открывалось окно сообщения Windows Forms. Для этого откройте файл TestApplication.cs и измените его следующим образом:

using System; using System.Windows.Forms; class TestApplication < static void Main() < Console.WriteLine("Привет!"); MessageBox.Show("Привет. "); >>

Далее в командной строке нужно проинформировать компилятор csc.exe о том, в какой сборке содержатся используемые пространства имен. Поскольку применялся класс MessageBox из пространства имен System.Windows.Forms, значит, нужно указать компилятору на сборку System.Windows.Forms.dll, что делается с помощью флага /reference (или его сокращенной версии /r):
Нажмите на изображение для увеличения Название: 3.jpg Просмотров: 429 Размер: 31.3 Кб ID: 1961
Если теперь снова попробовать запустить приложение, то помимо консольного вывода в нем должно появиться еще и окно с сообщением:
Название: 4.jpg Просмотров: 5128 Размер: 2.8 Кб
Кстати, как поступить, когда необходимо указать csc.exe несколько внешних сборок? Для этого нужно просто перечислить все сборки через точку с запятой. В рассматриваемом примере ссылаться на несколько сборок не требуется, но ниже приведена команда, которая иллюстрирует перечисление множества сборок:
csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs

Компиляция нескольких файлов исходного кода

В текущем примере приложение TestApp.exe создавалось с использованием единственного файла исходного кода * . cs. Хотя определять все типы .NET в одном файле *.cs вполне допустимо, в большинстве случаев проекты формируются из нескольких файлов *.cs для придания кодовой базе большей гибкости. Чтобы стало понятнее, давайте создадим новый класс и сохраним его в отдельном файле по имени HelloMessage.cs:

// Класс HelloMessage using System; using System.Windows.Forms; class HelloMessage
Изменим исходный класс TestApplication так, чтобы в нем использовался класс этого нового типа:

using System; class TestApplication < static void Main() < Console.WriteLine("Привет!"); HelloMessage v = new HelloMessage(); v.Speak(); >>

Чтобы скомпилировать файлы исходного кода на С# , необходимо их явно перечислить как входные файлы:
Нажмите на изображение для увеличения Название: 5.jpg Просмотров: 339 Размер: 14.1 Кб ID: 1965
В качестве альтернативного варианта компилятор С# позволяет использовать групповой символ (*) для включения в текущую сборку всех файлов *.cs, которые содержатся в каталоге проекта:
Нажмите на изображение для увеличения Название: 6.jpg Просмотров: 345 Размер: 13.0 Кб ID: 1964
Вывод, получаемый после запуска этой программы, идентичен предыдущей программе. Единственное отличие между этими двумя приложениями связано с разнесением логики по нескольким файлам.

Работа с ответными файлами в C#


Для создания сложного приложения С# из командной строки потребовалось бы вводить утомительное количество входных параметров для уведомления компилятора о том, как он должен обрабатывать исходный код. Для облегчения этой задачи в компиляторе С# поддерживается использование так называемых ответных файлов (response files).
В ответных файлах С# размещаются все инструкции, которые должны использоваться в процессе компиляции текущей сборки. По соглашению эти файлы имеют расширение *.rsp (сокращение от response — ответ). Чтобы посмотреть на них в действии, создадим ответный файл по имени TestApplication.rsp, содержащей следующие аргументы (комментарии в данном случае обозначаются символом #):

# Это ответный файл для примера # TestApplication.exe /r:System.Windows.Forms.dll # Параметры вывода и подлежащие компиляции файлы /target:exe /out:TestApplication.ехе *.cs

Теперь при условии сохранения данного файла в том же каталоге, где находятся подлежащие компиляции файлы исходного кода на С#, все приложение можно будет создать следующим образом (обратите внимание на применение символа @):
Нажмите на изображение для увеличения Название: 7.jpg Просмотров: 312 Размер: 12.6 Кб ID: 1966
В случае необходимости допускается также указывать и несколько ответных *.rsp файлов в качестве входных параметров (например, csc @FirstFile.rsp @SecondFile.rsp @ThirdFile.rsp). При таком подходе, однако, следует иметь в виду, что компилятор обрабатывает параметры команд по мере их поступления. Следовательно, аргументы командной строки, содержащиеся в поступающем позже файле *.rsp, могут переопределять параметры из предыдущего ответного файла.
Последним моментом, связанным с ответными файлами, о котором необходимо упомянуть, является то, что с компилятором С# ассоциирован ответный файл csc.rsp, который используется по умолчанию и размещен в том же самом каталоге, что и файл csc.ехе (обычно это С:\Windows\Microsoft. NET\Framework\, где на месте элемента идет номер конкретной версии платформы). Открыв файл csc.rsp в программе Notepad (Блокнот), можно увидеть, что в нем с помощью флага /r: указано множество сборок .NET, в том числе различные библиотеки для разработки веб-приложений, программирования с использованием технологии LINQ и обеспечения доступа к данным и прочие ключевые библиотеки (помимо, конечно же, самой главной библиотеки mscorlib. dll):
Нажмите на изображение для увеличения Название: 8.jpg Просмотров: 539 Размер: 55.0 Кб ID: 1967
При создании программ на С# с применением csc.ехе ссылка на этот ответный файл добавляется автоматически, даже когда указан специальный файл *.rsp. Из-за наличия такого ответного файла по умолчанию, рассматриваемое приложение TestApplication.ехе можно скомпилировать и c помощью следующей команды (поскольку в csc.rsp уже содержится ссылка на System.Windows.Forms.dll):
Нажмите на изображение для увеличения Название: 9.jpg Просмотров: 271 Размер: 12.9 Кб ID: 1968
Стоит отметить, что в случае добавления с помощью опции /r ссылок на сборки, которые на самом деле не используются, компилятор их проигнорирует. Поэтому беспокоиться по поводу «разбухания кода» не нужно.
По материалам professorweb.ru

Запустить Open Cover UI

Проект, создающий библиотеку классов, не может быть непосредственно запущен. Для отладки данного проекта добавьте к решению проект, создающий приложение и ссылающийся на эту библиотеку, и сделайте его запускаемым.

Это я ещё запускал от имени администратора. До этого была ошибка

Не удаётся начать отладку, так как отсутствует объект отладки «C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe». Перестройте проект и попробуйте ещё раз, или установите свойства OutputPath и AssemblyName так, чтобы они указывали на правильное расположение целевой сборки.

Подскажите, пожалуйста, как запустить решение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *