Код: Выделить всё
export function synchronizeFileWithIndexedDb(filename) {
return new Promise((res, rej) => {
const db = window.indexedDB.open('SqliteStorage', 1);
db.onupgradeneeded = () => {
db.result.createObjectStore('Files', { keypath: 'id' });
};
db.onsuccess = () => {
const req = db.result.transaction('Files', 'readonly').objectStore('Files').get('file');
req.onsuccess = () => {
Module.FS_createDataFile('/', filename, req.result, true, true, true);
res();
};
};
});
}
Код: Выделить всё
if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("browser")))
{
// create SQLite database file in browser
var module = await _js.InvokeAsync("import", "./dbstorage.js");
await module.InvokeVoidAsync("synchronizeFileWithIndexedDb", SqliteDbFilename);
}
Простое обновление до .NET 8 приводит к появлению «Модуля» (см. строку 11) больше не подлежит определению. Я столкнулся с той же проблемой, используя новый проект .NET 9. Если это .NET 6, то все работает, а .NET 8 или выше - нет.
Известна ли это проблема? Сейчас я боюсь что-либо обновлять с помощью JS Interop
Есть ли путь вперед? Я попытался изменить модуль на DotNet, основываясь на чтении документации MSFT, но это не сработало. Я не хочу возвращаться к .NET 6, чтобы решить эту проблему, если в этом нет необходимости

Вы можете попробовать это сами, просто обновив следующий проект Sqlite WASM:< /p>
https://github.com/TrevorDArcyEvans/BlazorSQLiteWasm
Подробнее здесь: https://stackoverflow.com/questions/793 ... et-8-after