Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка возникает время от времени / 18 сообщений из 18, страница 1 из 1
29.07.2020, 15:14
    #39984994
mikka sikorsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Время от времени возникает следующая ошибка:

Программа запускается через интранет.
Причем, тут же запускаю через сборку исходников проект на C# - всё работает!
Выполнение программы через интранет лечится перезапуском сервера IIS.
Но такой вариант не устраивает.
Хотелось бы знать, как в коде устранить проблему?
Пробовал подключаться к процессу через Отладку - в точке останова пишет, что не загружены символы.
В настройках параметров указывал путь к файлу pdb - никаких ихменений.
Понатыкать после каждой строки кода логирование?
Надеюсь на конструктивные ответы.

Метод, на котором падает программа (на всякий случай):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
        private void CreateReportFile(string argument)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MSSQLConnection"].ConnectionString);
            SqlDataAdapter da = new SqlDataAdapter();
            string cmdText = "select * from QuarterlyCheckReportsHeader where Id = @ReportId";
            SqlCommand SelectCommand = new SqlCommand(cmdText, connection);
            SelectCommand.CommandType = CommandType.Text;
            SelectCommand.CommandTimeout = int.MaxValue;
            SqlParameter tvpParam = SelectCommand.Parameters.AddWithValue("ReportId", argument);
            tvpParam.SqlDbType = SqlDbType.Int;
            da.SelectCommand = SelectCommand;
            System.Data.DataSet ds = new System.Data.DataSet();
            connection.Open();
            da.Fill(ds);

            System.Data.DataTable param_dt = new System.Data.DataTable();
            param_dt.Columns.Add("Id", System.Type.GetType("System.Int32"));
            param_dt.Columns.Add("DateReport", System.Type.GetType("System.DateTime"));
            param_dt.Columns.Add("N1", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N2", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N3", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N4", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N5", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N6", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N7", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N8", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N9", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N10", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N11", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N12", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N13", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N14", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N15", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N16", System.Type.GetType("System.String"));
            param_dt.Columns.Add("Id_Load", System.Type.GetType("System.String"));
            param_dt.Columns.Add("Id_PROMU", System.Type.GetType("System.String"));
            param_dt.Columns.Add("Id_MVK", System.Type.GetType("System.String"));

            System.Data.DataRow dr = null;
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                dr = param_dt.NewRow();
                dr.ItemArray = ds.Tables[0].Rows[i].ItemArray;
                param_dt.Rows.Add(dr);
            }

            connection.Close();

            rvView.Reset();
            rvView.ProcessingMode = ProcessingMode.Local;
            rvView.LocalReport.DataSources.Clear();
            rvView.LocalReport.ReportPath = @"Reports\Report.rdlc";
            rvView.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SubreportProcessingEventHandler);

            ReportDataSource datasource = new ReportDataSource("DataSet", param_dt as System.Data.DataTable);
            datasource.Name = "DataSet1";
            datasource.Value = param_dt;
            rvView.LocalReport.DataSources.Add(datasource);
            ReportParameter p1 = new ReportParameter("ReportParameter1", argument);
            rvView.LocalReport.SetParameters(p1);
            byte[] reportBytes = rvView.LocalReport.Render("Excel");

            string sRootFileName = "Отчет о результатах проведения квартальной проверки - ";
            string sFileName = "~/" + sRootFileName + DateTime.Now.ToString("dd.MM.yyyy") + ".xls";
            sFileName = System.Environment.MachineName == "INTCONTROL-P" ? sFileName.Replace(@"~/", @"C:\Windows\Temp\") : Server.MapPath(sFileName);  // INTCONTROL-P
            using (FileStream stream = File.OpenWrite(sFileName)) /*Server.MapPath(sFileName)*/
                stream.Write(reportBytes, 0, reportBytes.Length);

            // открыть файл и изменить область печати.
            Microsoft.Office.Interop.Excel.Application ExcelObj = null;
            Microsoft.Office.Interop.Excel.Workbooks Workbooks = null;
            Microsoft.Office.Interop.Excel.Worksheet Worksheet = null;
            Microsoft.Office.Interop.Excel.Workbook Workbook = null;
            Microsoft.Office.Interop.Excel.Sheets Sheets = null;

            try
            {
                ExcelObj = new Microsoft.Office.Interop.Excel.Application();
                Workbooks = ExcelObj.Workbooks;
                ExcelObj.DisplayAlerts = false;
                ExcelObj.Visible = false; // <-для отладки поставить в visible
                string FileName = System.Environment.MachineName == "INTCONTROL-P" ? sFileName.Replace(@"~/", @"C:\Windows\Temp\") : sFileName;

                Workbook = Workbooks.Open(FileName, 0, false, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                Sheets = Workbook.Worksheets;
                Worksheet = (Worksheet)Sheets.get_Item(1);

                Worksheet.Columns["A:A"].ColumnWidth = 5.29;
                Worksheet.Columns["B:B"].ColumnWidth = 5;
                Worksheet.Columns["C:C"].ColumnWidth = 8.43;
                Worksheet.Columns["D:D"].ColumnWidth = 12.71;
                Worksheet.Columns["E:E"].ColumnWidth = 27.29;
                Worksheet.Columns["F:F"].ColumnWidth = 7;
                Worksheet.Columns["G:G"].ColumnWidth = 7.43;
                Worksheet.Columns["H:H"].ColumnWidth = 7;
                Worksheet.Columns["I:I"].ColumnWidth = 7.86;
                Worksheet.Columns["J:J"].ColumnWidth = 7;
                Worksheet.Columns["K:K"].ColumnWidth = 7;
                Worksheet.Rows["1:1"].RowHeight = 15.75;
                Worksheet.Rows["2:2"].RowHeight = 48;
                Worksheet.Rows["3:3"].RowHeight = 15;
                Worksheet.Rows["4:4"].RowHeight = 15.75;
                Worksheet.Rows["5:5"].RowHeight = 15;
                Worksheet.Rows["6:6"].RowHeight = 15.75;
                Worksheet.Rows["7:7"].RowHeight = 30;
                Worksheet.Rows["8:8"].RowHeight = 42.75;
                Worksheet.Rows["9:9"].RowHeight = 43.5;
                Worksheet.Rows["10:10"].RowHeight = 15;
                Worksheet.Rows["11:11"].RowHeight = 15;
                Worksheet.Rows["12:12"].RowHeight = 29.25;
                Worksheet.Rows["13:13"].RowHeight = 28.5;
                Worksheet.Rows["14:14"].RowHeight = 28.5;
                Worksheet.Rows["15:15"].RowHeight = 15;
                Worksheet.Rows["16:16"].RowHeight = 15.75;
                Worksheet.Rows["17:17"].RowHeight = 30.75;
                Worksheet.Rows["18:18"].RowHeight = 34.5;
                Worksheet.Rows["19:19"].RowHeight = 34.5;
                Worksheet.Rows["20:20"].RowHeight = 28.25;
                Worksheet.Rows["21:21"].RowHeight = 28.25;
                Worksheet.Rows["22:22"].RowHeight = 34.5;
                Worksheet.Rows["23:23"].RowHeight = 28.25;
                Worksheet.Rows["24:24"].RowHeight = 28.25;
                Worksheet.Rows["25:25"].RowHeight = 15;
                Worksheet.Rows["26:26"].RowHeight = 15.75;
                Worksheet.Rows["27:27"].RowHeight = 30.75;
                Worksheet.Rows["28:28"].RowHeight = 15;
                Worksheet.Rows["29:29"].RowHeight = 15.75;
                Worksheet.Rows["30:30"].RowHeight = 55.5;
                Worksheet.Rows["31:31"].RowHeight = 44.25;
                Worksheet.Rows["32:32"].RowHeight = 15;
                Worksheet.Rows["33:33"].RowHeight = 15.75;
                Worksheet.Rows["34:34"].RowHeight = 43.5;
                Worksheet.Rows["35:35"].RowHeight = 15;
                Worksheet.Rows["36:36"].RowHeight = 15;
                Worksheet.Rows["37:37"].RowHeight = 15.75;
                Worksheet.Rows["38:38"].RowHeight = 15;
 
                Worksheet.Range["B1:K1"].Font.Bold = true;
                Worksheet.Range["B2:K2"].Font.Bold = true;
                Worksheet.Range["B4"].Font.Bold = true;
                Worksheet.Range["B6"].Font.Bold = true;
                Worksheet.Range["B11"].Font.Bold = true;
                Worksheet.Range["B16"].Font.Bold = true;
                Worksheet.Range["F17:G17"].Font.Bold = true;
                Worksheet.Range["H17:I17"].Font.Bold = true;
                Worksheet.Range["J17:K17"].Font.Bold = true;
                Worksheet.Range["B19:E19"].Font.Bold = true;
                Worksheet.Range["F18:K19"].Font.Bold = true;
                Worksheet.Range["F19:K19"].Font.Bold = true;
                Worksheet.Range["B22:K22"].Font.Bold = true;
                Worksheet.Range["B26"].Font.Bold = true;
                Worksheet.Range["B29"].Font.Bold = true;
                Worksheet.Range["B33"].Font.Bold = true;
                Worksheet.Range["B37"].Font.Bold = true;

                // убираем границы ячеек и отрисовываем границы там, где нам надо
                ExcelObj.Cells.Select();
                ClearCellsBorders(ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B17:K17"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B18:K18"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B19:K19"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B20:K20"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B21:K21"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B22:K22"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B23:K23"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B24:K24"], ExcelObj);

                Sheets[1].Select();
                ExcelObj.ActiveWindow.View = XlWindowView.xlPageBreakPreview;
                Worksheet = (Worksheet)ExcelObj.ActiveSheet;
                Worksheet.VPageBreaks[1].DragOff(XlDirection.xlToRight, 1);
                Worksheet.HPageBreaks[1].DragOff(XlDirection.xlDown, 1);
                ExcelObj.ActiveWindow.Zoom = 100;

                Sheets[2].Select();
                ExcelObj.ActiveWindow.View = XlWindowView.xlPageBreakPreview;
                Worksheet = (Worksheet)ExcelObj.ActiveSheet;
                Worksheet.Rows["1:1"].RowHeight = 15.75;
                Worksheet.Rows["2:2"].RowHeight = 15;
                Worksheet.Rows["3:3"].RowHeight = 15;
                Worksheet.Rows["4:4"].RowHeight = 15;
                Worksheet.Rows["5:5"].RowHeight = 15;
                Worksheet.Rows["6:6"].RowHeight = 15;
                Worksheet.Rows["7:7"].RowHeight = 28.5;
 
                Worksheet.Columns["A:A"].ColumnWidth = 12.57;
                Worksheet.Columns["B:B"].ColumnWidth = 11;
                Worksheet.Columns["C:C"].ColumnWidth = 40;
                Worksheet.Columns["D:D"].ColumnWidth = 12;
                Worksheet.Columns["E:E"].ColumnWidth = 40;
                Worksheet.Columns["F:F"].ColumnWidth = 8.43;
                Worksheet.Columns["G:G"].ColumnWidth = 8.43;
                Worksheet.Columns["H:H"].ColumnWidth = 10.29;
                Worksheet.Columns["I:I"].ColumnWidth = 40;
                Worksheet.Columns["J:J"].ColumnWidth = 14.57;
                Worksheet.Columns["K:K"].ColumnWidth = 18;
 
                Worksheet.VPageBreaks[1].DragOff(XlDirection.xlToRight, 1);
                ExcelObj.ActiveWindow.Zoom = 100;

                Worksheet.Range["A1:K6"].Select();
                ClearCellsBorders(ExcelObj);

                Worksheet.PageSetup.Zoom = false;
                Worksheet.PageSetup.Orientation = XlPageOrientation.xlLandscape;
                Worksheet.PageSetup.FitToPagesWide = 1;
                Worksheet.PageSetup.FitToPagesTall = 1;

                Worksheet.Range["A1:K1"].Select();
                Sheets[1].Select();
                Worksheet = (Worksheet)ExcelObj.ActiveSheet;
                Worksheet.Range["A1"].Select();
                Workbook.Save();
            }
            finally
            {
                Workbook.Close(0);
                ExcelObj.Quit();
                Marshal.ReleaseComObject(Sheets);
                Marshal.ReleaseComObject(Worksheet);
                Marshal.ReleaseComObject(Workbooks);
                Marshal.ReleaseComObject(Workbook);
                Marshal.ReleaseComObject(ExcelObj);
 
                Workbooks = null;
                Workbook = null;
                Sheets = null;
                Worksheet = null;
                ExcelObj = null;
            }

            string FilePathForDelete = System.Environment.MachineName == "INTCONTROL-P" ? sFileName.Replace(@"~/", @"C:\Windows\Temp\") : sFileName;
            try
            {
                FileInfo file = new FileInfo(FilePathForDelete);
                Response.Clear();
                Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlPathEncode(file.Name));
                Response.AddHeader("Content-Length", file.Length.ToString());
                Response.ContentType = "application/zip";
                Response.WriteFile(file.FullName);
                Response.Flush();
                Response.End();
            }
            finally
            {
                File.Delete(FilePathForDelete);
            }
        }



Модератор: В следующий раз портянку просто сотру. Используте тег spoiler
...
Рейтинг: 0 / 0
29.07.2020, 15:22
    #39984996
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Модератор: При чем тут MSSQL?
...
Рейтинг: 0 / 0
29.07.2020, 15:27
    #39985000
mikka sikorsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Картинка в полном размере.
Редактировать сообщение не могу.
За портянку извиняюсь, думал прилагать её или нет.
Приложил - нарвался. Сорри.

...
Рейтинг: 0 / 0
29.07.2020, 15:29
    #39985001
mikka sikorsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Гавриленко Сергей Алексеевич,

Падает при обращении к базе данных

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
29.07.2020, 15:32
    #39985007
mikka sikorsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Это WebForms
...
Рейтинг: 0 / 0
29.07.2020, 16:29
    #39985033
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
mikka sikorsky,
К примеру до этой строки может не дойти код, из-за произвольной ошибки.
Workbook = Workbooks.Open(

Далее в блоке Finally идёт закрытие книги
Workbook.Close(0)

А ссылки то и не будет. Надо в каждом блоке сделать Catch, где хотя бы отловить где ошибка (залогировать место), а в блоках Finally как минимум проверять, что там всё хорошо:
If Workbook IsNot Nothing Then

портянка большая, сглючить может во многих местах. По хорошему надо дробить на отдельные методы
...
Рейтинг: 0 / 0
29.07.2020, 16:38
    #39985036
Кифирчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
В stack trace есть номера строк в которых вылетели ошибки - 426,122.
в приложенном коде это какие строки?
...
Рейтинг: 0 / 0
29.07.2020, 16:44
    #39985038
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Использовать офисные приложения на сервере - крайне неудачная идея.
Для генерации экселя без их участия давным-давно уже придумали EPPlus.
...
Рейтинг: 0 / 0
29.07.2020, 19:34
    #39985133
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Сон Веры Павловны,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
// If you are a commercial business and have
// purchased commercial licenses use the static property
// LicenseContext of the ExcelPackage class :
ExcelPackage.LicenseContext = LicenseContext.Commercial;

// If you use EPPlus in a noncommercial context
// according to the Polyform Noncommercial license:
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;



Ну да, ну да. Любители халявки уже потирают руки :)
...
Рейтинг: 0 / 0
30.07.2020, 03:19
    #39985181
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
hVostt
Ну да, ну да. Любители халявки уже потирают руки :)

Не понял, о чем это.
...
Рейтинг: 0 / 0
30.07.2020, 09:52
    #39985221
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Сон Веры Павловны
hVostt
Ну да, ну да. Любители халявки уже потирают руки :)

Не понял, о чем это.


О том, что библиотека платная для коммерческого использования.
Для не коммерческого нафиг она нужна?

С учётом, что 90% (условно) разработчиков ищут халявные библиотеки, вместо того, чтобы пойти и выбить бюджет у руководства, это такое себе предложение.
...
Рейтинг: 0 / 0
30.07.2020, 10:10
    #39985224
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
hVostt
Для не коммерческого нафиг она нужна?

Ну почему же, разве некоммерческим приложениям по определению не нужен эксель?
hVostt
С учётом, что 90% (условно) разработчиков ищут халявные библиотеки

В местных реалиях те же 90% ещё ищут халявные IDE (и находят в виде всяких community и express edition, которые тоже запрещены для коммерческой разработки).
...
Рейтинг: 0 / 0
30.07.2020, 22:12
    #39985445
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Сон Веры Павловны
hVostt
Для не коммерческого нафиг она нужна?

Ну почему же, разве некоммерческим приложениям по определению не нужен эксель?


Для некоммерческих это вряд ли целевое использование.
Если что-то надо выгрузить, это можно сделать и простейшем CSV, которое легко в эксель засунуть.

Сон Веры Павловны
В местных реалиях те же 90% ещё ищут халявные IDE (и находят в виде всяких community и express edition, которые тоже запрещены для коммерческой разработки).


У нас такого нет :)
...
Рейтинг: 0 / 0
31.07.2020, 09:43
    #39985473
Диклевич Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Сон Веры Павловны
hVostt
Для не коммерческого нафиг она нужна?

В местных реалиях те же 90% ещё ищут халявные IDE (и находят в виде всяких community и express edition, которые тоже запрещены для коммерческой разработки).


Не знаю о других IDE, но VS Express можно для коммерческих целей использовать.
...
Рейтинг: 0 / 0
31.07.2020, 12:02
    #39985507
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Диклевич Александр
VS Express

Её давным-давно уже не существует, есть VS community, которая разрешена для коммерческой разработки при числе девелоперов не более 5 человек: https://visualstudio.microsoft.com/ru/license-terms/mlt553321/
...
Рейтинг: 0 / 0
31.07.2020, 12:18
    #39985512
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Сон Веры Павловны,

и если суммарный доход этих 5 пользователей не превышает 1 млн долларов :D
но для этого каждый должен по 1 300 000 р. зарабатывать, но с такой зарплатой можно и купить не напрягаясь :D
...
Рейтинг: 0 / 0
31.07.2020, 17:23
    #39985653
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Roman Mejtes,

Суммарный доход с проекта, а не с пользователей.
И скорее всего не доход, а оборот.

С другой стороны, JetBrains All Product Pack стоит копейки на одного разработчика.
У меня две лицензии, личная и корпоративная :)
...
Рейтинг: 0 / 0
04.08.2020, 10:28
    #39986323
Диклевич Александр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка возникает время от времени
Сон Веры Павловны
Диклевич Александр
VS Express

Её давным-давно уже не существует, есть VS community, которая разрешена для коммерческой разработки при числе девелоперов не более 5 человек: https://visualstudio.microsoft.com/ru/license-terms/mlt553321/


что значит "не существует"?
Вот ссылка на скачивание, берите, пользуйтесь - https://visualstudio.microsoft.com/vs/older-downloads/.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка возникает время от времени / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]