LINUX.ORG.RU

Сообщения Aleksy

 

Нужен совет, OpenSuse, Monodevlop4, SQLite

Вообщем, ставлю OpenSuse 13.1, для этой версии стабильные версии, которые входят в стандартные репозитории являются - MonoDevelop 3.0.6., SQLite3 3.7.17

Но используя репозиторий Factory(opensuse 13.2 которая находится в разработке как я понял) я устанавливал MonoDevlop 4.2.1 и SQLite3 3.8.3

Вообщем мне удавалось установить их полностью работоспособными, но потом после каких то обновления (из Factory) ОС перестовала работать, переустанавливал уже раз 10+ (так как я нуб в линуксе и не могу восстановить как было до установки обновлений). Я нашел методом тыка что рушит систему - какой-то файл Sqlite3-perl новой версии, который за собой тянет установку нового Yasta и других программ, после чего половина не работает.

Хочу добиться стабильности, решил устанавливать все акуратно - установил почти чистую ОС, установил SQLite3 новой версии только основные 2-3 файла, установил MonoDevelop новой версии 4.2.1 из репозитория Factory... теперь убрал этот репозиторий, что бы оттуда ничего «тестового не рабочего» не скачалось.

Все работает, но MonoDevelop при открытии выдает предупреждение: - MonoDevelop.GnomePlatform_4 ....... (вы можете проложить работу, но функция данного add-ins не будет доступна). Сам MonoDevelop потом запускается и вроде все работает, но не успел пока потестить норм. Что это за предупреждение такое? Моя платформа KDE, Gnome вообще не установлен, при чем тогда тут такая ошибка гнома?

И вообще можно ли так делать - установить SQLite и MonoDevelop из Factory, потом убрать этот репозиторий и обновлять только со стабильного выпуска, будет ли дальше все работать в таком случае?

 , ,

Aleksy
()

C# Mono, SQLite в Win и Linux

Добрый вечер! Как сделать что бы приложение-бд работало и в windows и в linux(opensuse), c System.Data.SQLite не получается что-то: (в винде код работает, а вот в линукс при нажатии на кнопку зависает, а потом программа закрывается)

using System;
using System.Windows.Forms;
using System.Data.SQLite;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{


SQLiteConnection conn = new SQLiteConnection();
MessageBox.Show(conn.State.ToString());
conn.ConnectionString = "data source=|DataDirectory|\\SQLiteMono.sqlite3";
conn.Open();
MessageBox.Show(conn.State.ToString());
conn.Close();
MessageBox.Show(conn.State.ToString());
}
}
}

Может надо использовать Mono.Data.SQLite? Пытаюсь, но следующий код не работает в виндус: (код с сайта http://www.mono-project.com/SQLite)

using System;
using System.Data;
using System.Windows.Forms;
using Mono.Data.Sqlite;
namespace MonoSqlite
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=|DataDirectory|SQLiteMono.sqlite3, version=3";
IDbConnection dbcon;
dbcon = (IDbConnection)new SqliteConnection(connectionString);
dbcon.Open();
MessageBox.Show(dbcon.State.ToString());
dbcon.Close();
}
}
}

Второй код работает в linux (opensuse), но в винде выдает ошибку - «System.TypeLoadException: Правила безопасности наследования нарушены типом: „Mono.Data.Sqlite.SqliteConnectionHandle“. Производные типы должны либо соответствовать по доступности в контексте безопасности базовому типу, либо быть менее доступными.»

Вообщем, реально ли сделать что бы один код работал и в винде и в линукс?

 , ,

Aleksy
()

RSS подписка на новые темы