Преобразование проекта C# .NET Framework 4.8 (содержащего ссылки на Microsoft.VisualBasic) в проект .NET Core 8.0.C#

Место общения программистов C#
Ответить
Anonymous
 Преобразование проекта C# .NET Framework 4.8 (содержащего ссылки на Microsoft.VisualBasic) в проект .NET Core 8.0.

Сообщение Anonymous »

У меня есть проект C#, ориентированный на .NET Framework 4.8, и я хочу преобразовать его в проект .NET Core 8.0. Я использовал инструмент Microsoft Upgrade, и он закрыл его, но у него возникли проблемы со ссылками на Microsoft.VisualBasic, которые есть в исходном проекте.
В частности:

Код: Выделить всё

using Microsoft.VisualBasic.ApplicationServices; //Does not exist
using Microsoft.VisualBasic.Devices;             //Does not exist
using Microsoft.VisualBasic.Logging;             //Does not exist
ApplicationBase                                  //Does not exist
using System.Data.sqlClient;                     //Does not exist
using Microsoft.VisualBasic.MyServices.Internal; //Does not exist
Принимая во внимание:

Код: Выделить всё

using Microsoft.VisualBasic.CompilerServices;    //Does exist
Есть и другие проблемы, но если я смогу разобраться с ними, думаю, я смогу успешно преобразовать проект.
Кто-нибудь может помочь мне?
Спасибо.
С уважением,
Джим.
Вот код из мини-проекта. Он имеет 2 класса Class1.cs и MyProject.cs:
Class1.cs:

Код: Выделить всё

using Microsoft.VisualBasic;
using Microsoft.VisualBasic.ApplicationServices;
using Microsoft.VisualBasic.CompilerServices;

namespace DotNetFramework4._8.My
{
[StandardModule]
[OptionText]
[HideModuleName]
public sealed class MyWebExtension
{
private static MyProject.ThreadSafeObjectProvider s_User = new MyProject.ThreadSafeObjectProvider();
}
}
MyProject.cs:

Код: Выделить всё

using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
using Microsoft.VisualBasic.MyServices.Internal;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace DotNetFramework4._8.My
{
[HideModuleName]
[StandardModule]
[GeneratedCode("MyTemplate", "8.0.0.0")]
internal sealed class MyProject
{
[EditorBrowsable(EditorBrowsableState.Never)]
[ComVisible(false)]
internal sealed class ThreadSafeObjectProvider where T : new()
{
private readonly ContextValue m_Context;

internal T GetInstance
{
[DebuggerHidden]
get
{
T getInstance = this.m_Context.Value;
if ((object)getInstance == null)
{
getInstance = new T();
this.m_Context.Value = getInstance;
}
return getInstance;
}
}

[DebuggerHidden]
[EditorBrowsable(EditorBrowsableState.Never)]
public ThreadSafeObjectProvider() => this.m_Context = new ContextValue();
}
}
}
Просто создайте, ориентированный на .NET Framework 4.8, и он должен скомпилироваться без ошибок. Вам понадобятся ссылки на Microsoft.VisualBasic, возможно, добавьте его как пакет NuGet.
Затем попробуйте преобразовать в .NET Core 8.0 ссылки на Microsoft.VisualBasic больше недоступны. Я хочу найти эквивалент.
Я нашел страницу Microsoft, на которой написано: «Если ваш код зависит от использования типов Microsoft.VisualBasic.ApplicationServices и их членов, возможно, вам возможность использовать соответствующий тип или член в библиотеке классов .NET. Например, некоторые члены System.Environment и System.Security.Principal.WindowsIdentity предоставляют эквивалентную функциональность свойствам класса Microsoft.VisualBasic.ApplicationServices.User». его можно найти здесь: https://learn.microsoft.com/en-us/dotne ... isualbasic
Спасибо,
Джим.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -microsoft
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»