我刚刚发现了NRefactory 5,我猜,这是我目前问题的最合适的解决方案.目前我正在开发一个小C#脚本应用程序,我想提供代码完成.直到最近,我才使用微软的"Roslyn"项目完成了这项工作.但是由于该项目的最新更新需要.Net Framework 4.5,我不能再使用它,因为我希望该应用程序也可以在Win XP下运行.所以我必须在这里切换到另一种技术.
我的问题不是汇编的东西.这可以通过.Net CodeDomProvider进行更多的努力来完成.问题在于代码完成的东西.据我所知,NRefactory 5提供了提供代码完成所需的一切(解析器,类型系统等),但我无法弄清楚如何使用它.我看了一下SharpDevelop源代码,但他们没有使用NRefactory 5来完成代码,他们只将它用作反编译器.因为我找不到一个关于如何在网络中使用它来完成代码的示例,我认为我可能会在这里找到一些帮助.
情况如下.我有一个包含脚本代码的文件.实际上它甚至不是一个文件,而是一个从编辑器控件中得到的字符串(顺便说一句:我正在使用AvalonEdit.伟大的编辑器!)和一些需要引用的程序集.因此,没有解决方案文件,没有项目文件等只是一串源代码和程序集.
我已经看了NRefactory 5附带的Demo和关于代码项目的文章,并得到了类似这样的东西:
var unresolvedTypeSystem = syntaxTree.ToTypeSystem();
IProjectContent pc = new CSharpProjectContent();
// Add parsed files to the type system
pc = pc.AddOrUpdateFiles(unresolvedTypeSystem);
// Add referenced assemblies:
pc = pc.AddAssemblyReferences(new CecilLoader().LoadAssemblyFile(
System.Reflection.Assembly.GetAssembly(typeof(Object)).Location));
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道如何继续下去.我甚至不确定这是否是实现目标的正确方法.如何使用CSharpCompletionEngine?还需要什么?等等.你看到目前还有许多不太清楚的事情,我希望你能为此带来一些启示.
非常感谢大家!
我目前正在尝试让 Jenkins 构建托管在 GitHub 企业存储库中的项目。我们为 GitHub 服务器使用自签名证书,这会导致一些问题。
我能够解决的大部分问题:
git 命令行:
获取 PEM 格式的证书并教 git 使用 .config 文件查找信息:
[http "https://github.*******************.com"]
sslCAInfo = "path\\to\\selvSignedCerts\\fileName.pem"
sslCAPath = "path\\to\\selvSignedCerts\\"
sslVerify = true
Run Code Online (Sandbox Code Playgroud)
Jenkins GitHub 插件:
将证书信息添加到 java cacerts keystore:
keytool -import -trustcacerts -alias myAlias
-keystore "%JenkinsInstallDir\jre\lib\security\cacerts"
-file "myCertsInfo.pem"
Run Code Online (Sandbox Code Playgroud)
将信息导入密钥库后重新启动 Jenkins 最终成功了,因此我能够在
管理 Jenkins -> 配置系统 -> GitHub Enterprise 服务器 -> API 端点中配置 GitHub Enterprise 服务器
此配置以前是不可能的,原因是:
SSL certificate problem: self signed certificate in certificate chain
Run Code Online (Sandbox Code Playgroud)
现在,我的 git 命令行很高兴,Jenkins 中的 GitHub 插件也很高兴,这意味着 Jenkins 本身很高兴,但 git-client …