Форум программистов, компьютерный форум, киберфорум
Наши страницы
8Observer8
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 1.

Инструкция, как сделать OpenTK.GLControl автономным от NuGet

Запись от 8Observer8 размещена 05.06.2019 в 11:09
Обновил(-а) 8Observer8 05.06.2019 в 11:26

Цитата:
Сообщение от NadinKaa Посмотреть сообщение
Единственное, что С# требует пред.установки Фреймворка, что по ТЗ не желательно. но стоит подумать, возможно о совмещении в дальнейшем.
Меня часто спрашивают (нет), как сделать OpenTK автономным, то есть не требующий установки при запуске за другой машине.

Это пример на WinForms и OpenGL 1.1, в котором OpenTK.GLControl установлен через NuGet: LineAndButton_WinFormsOpenGL11CSharp.zip. Сразу дам финальный проект без установки через NuGet: LineAndButton_WithoutNuGet.zip. Мой пример рисует линию, по нажатию на кнопку координаты линии увеличиваются:

Название: LineAndButton_WinFormsOpenGL11CSharp.png
Просмотров: 144

Размер: 2.8 Кб

Form1.cs

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
using System;
using System.Drawing;
using System.Windows.Forms;
using OpenTK;
using OpenTK.Graphics;
using OpenTK.Graphics.OpenGL;
 
namespace LineAndButton
{
    public partial class Form1 : Form
    {
        private GLControl _glControl;
 
        private PointF _startPoint = new PointF(-0.5f, 0f);
        private PointF _endPoint = new PointF(0f, -0.5f);
 
        public Form1()
        {
            InitializeComponent();
 
            _glControl = new GLControl();
            _glControl.Load += GLControl_Load;
            _glControl.Paint += GLControl_Paint;
            _glControl.Dock = DockStyle.Fill;
            _tableLayoutPanel.Controls.Add(_glControl, 0, 0);
        }
 
        private void GLControl_Load(object sender, EventArgs e)
        {
            //MessageBox.Show(_glControl.Width + " " + _glControl.Height);
 
            GL.ClearColor(Color4.Green);
        }
 
        private void GLControl_Paint(object sender, PaintEventArgs e)
        {
            GL.Clear(ClearBufferMask.ColorBufferBit);
 
            GL.Begin(PrimitiveType.Lines);
            {
                GL.Vertex2(_startPoint.X, _startPoint.Y);
                GL.Vertex2(_endPoint.X, _endPoint.Y);
            }
            GL.End();
 
            _glControl.SwapBuffers();
        }
 
        private void btnMove_Click(object sender, EventArgs e)
        {
            _startPoint.X += 0.1f;
            _startPoint.Y += 0.1f;
            _endPoint.X += 0.1f;
            _endPoint.Y += 0.1f;
            _glControl.Invalidate();
        }
    }
}


Задача - сделать рабочее окружение, чтобы нужные файлы хранились в доступном месте (например, в папке "E:\Libs") и можно было скопировать эти файл в новый проект и подключить через References.

Если вы поставите OpenTK.GLControl через NuGet или мой пример выше, то увидите в решении папку "packages". Откройте её и вы увидите две папки:
  • OpenTK.3.0.1
  • OpenTK.GLControl.3.0.1

Создайте, где-нибудь в доступном месте папки с аналогичными именами. Например, в таком доступном месте "E:\Libs" Скопируйте содержимое папок "lib" в эти пустые папки. У вас должна получится такая структура папок:

E:\Libs\OpenTK.3.0.1\net20\
- OpenTK.dll
- OpenTK.pdb
- OpenTK.xml

E:\Libs\OpenTK.GLControl.3.0.1\net20\
- OpenTK.GLControl.dll
- OpenTK.GLControl.pdb
- OpenTK.GLControl.xml

Теперь, когда вам нужно создать новое WinForms (или WPF), вы можете создать в своём решении папку Libs и скопировать в неё эти две папки "OpenTK.3.0.1" и "OpenTK.GLControl.3.0.1". Потом в проекте кликните по References правой кнопкой мыши (нужно выбрать "Add Reference..."). Добавьте на вкладке "Browse" и по кнопке "Browse..." две библиотеки "OpenTK.dll" и "OpenTK.GLControl.dll". Теперь ваш проект автономный и не зависит от NuGet. Можете сбрасывать его заказчику, друзьям и знакомым.
Размещено в Без категории
Просмотров 92 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru