小编jsc*_*eit的帖子

Roslyn AdhocWorkspace要求参考System.Runtime

我正在尝试对一些C#代码进行语义分析.在AdhocWorkspace为我的测试设置时,我发现了一些示例,指出在Type和上使用装配位置object.当我这样做时,我的诊断中出现以下错误:

[0]:TestIsNotInstanceOfTypeMessage.cs(13,20):错误CS0012:类型'Object'在未引用的程序集中定义.您必须添加对程序集'System.Runtime,Version = 4.0.0.0,Culture的引用=中立,PublicKeyToken = b03f5f7f11d50a3a'.

[1]:TestIsNotInstanceOfTypeMessage.cs(13,13):错误CS0012:类型'Type'在未引用的程序集中定义.您必须添加对程序集'System.Runtime,Version = 4.0.0.0,Culture的引用=中立,PublicKeyToken = b03f5f7f11d50a3a'.

当我添加以下行时一切正常:

MetadataReference.CreateFromFile(@"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\v4.6.1\\Facades\\System.Runtime.dll"),
Run Code Online (Sandbox Code Playgroud)

我对测试项目中的硬编码路径并不满意,但我不确定如何"获取"4.6.1版本objectType其他任何方式.下面的代码显示了我的助手的要点AdhocWorkspace

private static readonly ImmutableArray<MetadataReference> _coreReferences = 
ImmutableArray.Create<MetadataReference>(
MetadataReference.CreateFromFile(typeof(Type).Assembly.Location),
MetadataReference.CreateFromFile(typeof(object).Assembly.Location)


private static readonly Project _baseProject = new AdhocWorkspace()
    .AddProject("Test", LanguageNames.CSharp)
    .AddMetadataReferences(_coreReferences)
    .WithCompilationOptions(new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary));
Run Code Online (Sandbox Code Playgroud)

更多细节:

  • Visual Studio Community v15.4.0
  • Target framework: .NET 4.6.1
  • Microsoft.CodeAnalysis.CSharp v2.4.0
  • 主项目是一个控制台应用程序,测试项目是一个常规库,也不是PCL

.net c# roslyn

6
推荐指数
1
解决办法
338
查看次数

通过C#应用程序Interop使用F#Data CsvProvider

极端的noob即将学习的问题:我有一个想在我的C#(通用)应用程序中使用的模块。C#应用程序将下载并解压缩包含12个CSV的文件,这些文件将始终遵循相同的格式。因此,我要做的是提前下载CSV,并将它们添加到我的解决方案中,以便CsvProvider <“ thefile.csv”>中引用的文件将在编译时存在。

namespace ExperimentalFSLibrary    
module CsvHelper =
    open FSharp.Data
    let GetCsvA path = 
        CsvProvider<"thefileA.csv">.Load(path)
Run Code Online (Sandbox Code Playgroud)

然后从我的c#应用程序中调用此命令,如下所示:

var ReceivedCsvA = ExperimentalFSLibrary.CsvHelper.GetCsvA
Run Code Online (Sandbox Code Playgroud)

从F#库获取数据还没有成功

还有一个问题是如何处理十二个不同的文件,因为我必须为CsvProvider指定模板文件,我想我必须编写12个不同的函数?

我在SO周围搜索,发现了让我走到现在的东西,但我碰到了墙。任何帮助,包括健康检查,将不胜感激。

c# f# f#-data

4
推荐指数
1
解决办法
298
查看次数

标签 统计

c# ×2

.net ×1

f# ×1

f#-data ×1

roslyn ×1