标签归档:npp

使用C#开发Notepad++插件遇到的问题

一些希望在Notepad++中使用的功能,找不到插件,就想自己整一下。奈何Notepad++插件需要C++,而我却对C#较熟悉,就开始寻找使用C#开发的道路。
看这里…
https://sourceforge.net/p/notepad-plus/discussion/482781/thread/7d864e52/

我下载了(NppPlugin.NET.v0.6) 这个鬼东西。
里面有 vs2005 2008 2010 的项目文件。整个2010的项目用VS2013打开。生成。。 报错了。

ILDasm: calling ‘ildasm.exe’ with /quoteallnames /unicode /nobar /linenum “/out:C:\Users\hyjiacan\AppData\Local\Temp\tmpAB1F\Demo.il” “C:\hyjiacan\VS\NppPlugin.NET.v0.5\Demo Plugin\NppManagedPluginDemo\bin\Debug\Demo.dll”

重新生成,找问题。。 还是这样。。

突然看到SO上这个:http://stackoverflow.com/questions/21430876/sdk-path-is-empty-in-notepad-plugin-net

这里面提到了一个设置 verbosity(诊断),我也这样改一下试试。。

就重新生成了一下,找到输出里面有这样一个路径:

SdkPath=C:\Program Files\Microsoft SDKs\Windows\v8.1A

再看,目标文件是ildasm.exe,而在这个路径下没有这个文件,接着用 everything 搜一下,发现在这个目录下的 bin\NETFX 4.5.1 Tools目录下有这样一个文件,好吧,估计是这个路径的问题了。

到处找、。。。 发现这个文件挺奇怪的。
NppPlugin.NET.v0.6\Templates\SharpDevelop 4.x\bin\DllExport\NppPlugin.DllExport.targets
然后,打开这个文件:

<Project
  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask TaskName="NppPlugin.DllExport.MSBuild.DllExportTask"
             AssemblyFile="NppPlugin.DllExport.MSBuild.dll"/>
  <Target Name="AfterBuild"
          DependsOnTargets="GetFrameworkPaths"
          >
    <DllExportTask Platform="$(Platform)"
                   PlatformTarget="$(PlatformTarget)"
                   CpuType="$(CpuType)"
                   EmitDebugSymbols="$(DebugSymbols)"
                   DllExportAttributeAssemblyName="$(DllExportAttributeAssemblyName)"
                   DllExportAttributeFullName="$(DllExportAttributeFullName)"
                   Timeout="$(DllExportTimeout)"
                   KeyContainer="$(KeyContainerName)$(AssemblyKeyContainerName)"
                   KeyFile="$(KeyOriginatorFile)"
                   ProjectDirectory="$(MSBuildProjectDirectory)"
                   InputFileName="$(TargetPath)"
                   FrameworkPath="$(TargetedFrameworkDir);$(TargetFrameworkDirectory)"
                   LibToolPath="$(DevEnvDir)\..\..\VC\bin"
                   LibToolDllPath="$(DevEnvDir)"
                   SdkPath="$(FrameworkSDKDir)"/>
  </Target>
</Project>

里面有一个SdkPath,试一下在SdkPath=”$(FrameworkSDKDir)后面添加上这个路径呢(即:SdkPath=”$(FrameworkSDKDir)\bin\NETFX 4.5.1 Tools”)?

保存,再生成,没报错了。