Сообщение F# net6.0-windows и компиляция вручную от 17.11.2022 0:32
Изменено 21.11.2022 2:56 Разраб
F# net6.0-windows и компиляция вручную
есть упомянутый таргет.
если создать проект, то winforms нормально стартует.
если тот же код запустить через dotnet fsi
то ругается и подсказывает что проблема может решится добавлением -windows
КАК?
или достаточно указать -Iпуть к папке с этим сэтом.
или нужно вручную рефересны добавлять на system.windows.forms.dll?
подвопрос. эти dll отличаются чем-то у корки от старого. или корка использует то что в ГАК?
если создать проект, то winforms нормально стартует.
если тот же код запустить через dotnet fsi
то ругается и подсказывает что проблема может решится добавлением -windows
КАК?
или достаточно указать -Iпуть к папке с этим сэтом.
или нужно вручную рефересны добавлять на system.windows.forms.dll?
подвопрос. эти dll отличаются чем-то у корки от старого. или корка использует то что в ГАК?
dotnet fsi --targetprofile:netcore -I:"c:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\7.0.0\ref\net7.0"
Microsoft (R) F# Interactive, версия 12.4.0.0 для F# 7.0
c Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
Для получения справки введите #help;;
> #r "System.Windows.Forms.dll";;
--> Добавлена ссылка на "c:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\7.0.0\ref\net7.0\System.Windows.Forms.dll" (файл может быть заблокирован процессом F# Interactive)
> open System;;
> open System.Windows.Forms;;
> let app = Application();;
let app = Application();;
----------^^^^^^^^^^^
stdin(4,11): error FS1133: Недоступны конструкторы для типа "Application"
> let win = Form();;
let win = Form();;
----------^^^^^^
stdin(5,11): warning FS0760: Рекомендуется создавать объекты, поддерживающие интерфейс IDisposable с помощью "new Type(args)", а не "Type(args)" или "Type" в качестве значения функции, представляющего конструктор; это делается для того, чтобы указать, что ресурсы могут принадлежать созданному значению.
Привязка сеанса к "c:\Program Files\dotnet\packs\Microsoft.WindowsDesktop.App.Ref\7.0.0\ref\net7.0\System.Windows.Forms.dll"...
error FS0193: внутренняя ошибка: Could not load file or assembly 'System.Windows.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Reference assemblies cannot be loaded for execution. (0x80131058)
System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Не удается найти указанный файл.
File name: 'System.Windows.Forms, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at <StartupCode$FSI_0005>.$FSI_0005.main@()
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
Остановлено из-за ошибки
> app.Run(win);;F# net6.0-windows и компиляция вручную
есть упомянутый таргет.
если создать проект, то winforms нормально стартует.
если тот же код запустить через dotnet fsi
то ругается и подсказывает что проблема может решится добавлением -windows
КАК?
или достаточно указать -Iпуть к папке с этим сэтом.
или нужно вручную рефересны добавлять на system.windows.forms.dll?
продолжил копать
если создать проект, то winforms нормально стартует.
если тот же код запустить через dotnet fsi
то ругается и подсказывает что проблема может решится добавлением -windows
КАК?
или достаточно указать -Iпуть к папке с этим сэтом.
или нужно вручную рефересны добавлять на system.windows.forms.dll?
продолжил копать