Я пытался разработать плагин для Notepad ++. Моя цель - разработать его с C# и кодом Visual Studio. К сожалению, это не так просто, как кажется.
В качестве основы для майского проекта я скачал следующий пакет NotepadPlusPlusPluginPack. Net
(я не знаю, есть ли более обновленная версия)
Я установил « Шаблон проекта Visual Studio C#», как описано в этой документации .
При создании нового подпрограммы папка .template.config
и новый файл template.json
{
"$schema": "http://json.schemastore.org/template",
"author": "Me",
"classifications": [ "Common", "Library"],
"identity": "PluginTemplate.classlibProject",
"name": "Notepad++ Plugin ",
"shortName": "Npp-classlib",
"tags": {
"language": "C#",
"type": "project"
}
}
Затем
dotnet new -i .\
Я могу перейти в папку для проверки и создать проект плагина с шаблоном Npp-classlib
dotnet new Npp-classlib
Я переименую файл $projectname$.csproj
в NppPlugin.csproj
и замените
<RootNamespace>$safeprojectname$</RootNamespace>
на <RootNamespace>NppPlugin</RootNamespace>
<AssemblyName>$safeprojectname$</AssemblyName>
на <AssemblyName>NppPlugin</AssemblyName>
Пока все прошло хорошо, проблемы начинаются, когда я пытаюсь завершить проект
dotnet restore
dotnet run
Ошибка MSB3644: Решение : Я заменяю <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
на <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
Ошибка MSB4216 Решение: (см. 'do tnet build' error после переноса проекта dotnetcore на 1.0.4 ). Я добавил
<PropertyGroup Condition="'$(MSBuildRuntimeType)' == 'Core'">
<GenerateResourceMSBuildArchitecture>CurrentArchitecture</GenerateResourceMSBuildArchitecture>
<GenerateResourceMSBuildRuntime>CurrentRuntime</GenerateResourceMSBuildRuntime>
</PropertyGroup>
Ошибка MSB4062 И эту ошибку, после нескольких попыток, я не смог ее решить. Интересно, что, несмотря на ошибку в компиляции, генерируется библиотека NppPlugin.dll
.
Однако при установке Notepad ++ возвращает следующую ошибку:
И независимо от того, что я здесь выбираю, библиотека не отображается в параметрах N ++
Как я могу решить эти две проблемы? Как я могу продолжить?
Я был бы рад получить любые вопросы, предложения или комментарии по этому вопросу. Большое спасибо!