【发布时间】:2015-04-30 02:55:57
【问题描述】:
按照https://github.com/aspnet/Home 的指示在 OSX 上安装了 DNVM 和 DNX。
我使用generator-aspnet 创建了一个带有一个源文件 Program.cs 的控制台应用程序:
using System;
namespace HelloWorldConsole
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World");
Console.ReadLine();
}
}
}
还有一个 package.json:
{
"version": "1.0.0-*",
"dependencies": {},
"commands": {
"run": "run"
},
"frameworks": {
"dnx451": {},
"dnxcore50": {
"dependencies": {
"System.Console": "4.0.0-beta-*"
}
}
}
}
当我使用dnu . run 运行它时,它会按预期工作并打印“Hello World!”。
但是,当我尝试通过运行 dnu build 从中生成程序集时,出现以下错误:
System.IO.EndOfStreamException:无法读取流的结尾。
在 System.IO.BinaryReader.ReadChar () [0x00000] in :0 在 Microsoft.CodeAnalysis.CvtResFile.ReadStringOrID (System.IO.BinaryReader fhIn) [0x00000] in :0 at Microsoft.CodeAnalysis.CvtResFile.ReadResFile (System.IO.Stream 流)[0x00000] in :0 at Microsoft.CodeAnalysis.Compilation.MakeWin32ResourceList (System.IO.Stream win32Resources,Microsoft.CodeAnalysis.DiagnosticBag 诊断)[0x00000] in :0 at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.SetupWin32Resources (Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder 模块BeingBuilt, System.IO.Stream win32Resources,Microsoft.CodeAnalysis.DiagnosticBag 诊断)[0x00000] in :0 at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileImpl (Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder 模块构建器, System.IO.Stream win32Resources,System.IO.Stream xmlDocStream, Boolean generateDebugInfo, Microsoft.CodeAnalysis.DiagnosticBag 诊断,System.Predicate1 filterOpt, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 at Microsoft.CodeAnalysis.Compilation.Compile (Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder moduleBuilder, System.IO.Stream win32Resources, System.IO.Stream xmlDocStream, Boolean generateDebugInfo, Microsoft.CodeAnalysis.DiagnosticBag diagnostics, System.Predicate1 filterOpt,CancellationToken cancelToken) [0x00000] in :0 at Microsoft.CodeAnalysis.Compilation.Emit (Microsoft.CodeAnalysis.EmitStreamProvider peStreamProvider, Microsoft.CodeAnalysis.EmitStreamProvider pdbStreamProvider, Microsoft.CodeAnalysis.EmitStreamProvider xmlDocumentationStreamProvider, Microsoft.CodeAnalysis.EmitStreamProvider win32ResourcesStreamProvider, IEnumerable1 manifestResources, Microsoft.CodeAnalysis.Emit.EmitOptions options, Microsoft.CodeAnalysis.CodeGen.CompilationTestData testData, System.Func1 getHostDiagnostics, CancellationToken cancelToken) [0x00000] 在 :0 处 Microsoft.CodeAnalysis.Compilation.Emit (System.IO.Stream peStream, System.IO.Stream pdbStream,System.IO.Stream xmlDocumentationStream, System.IO.Stream win32Resources, IEnumerable1 manifestResources, Microsoft.CodeAnalysis.Emit.EmitOptions options, Microsoft.CodeAnalysis.CodeGen.CompilationTestData testData, System.Func1 getHostDiagnostics, CancellationToken cancelToken) [0x00000] 在 :0 处 Microsoft.CodeAnalysis.Compilation.Emit (System.IO.Stream peStream, System.IO.Stream pdbStream,System.IO.Stream xmlDocumentationStream, System.IO.Stream win32Resources,IEnumerable1 manifestResources, Microsoft.CodeAnalysis.Emit.EmitOptions options, CancellationToken cancellationToken) [0x00000] in <filename unknown>:0 at Microsoft.Framework.Runtime.Roslyn.RoslynProjectReference.EmitAssembly (System.String outputPath) [0x00000] in <filename unknown>:0 at Microsoft.Framework.PackageManager.ProjectBuilder.Build (System.String name, System.String outputPath) [0x00000] in <filename unknown>:01 诊断)[0x00000] 在 Microsoft.Framework.PackageManager.BuildManager.Build 的 0 中 () [0x00000] 在 :0 处 Microsoft.Framework.PackageManager.Program+c__DisplayClass3_4.b__8 () [0x00000] 在 :0 处 Microsoft.Framework.Runtime.Common.CommandLine.CommandLineApplication.Execute (System.String[] args) [0x00000] in :0 at Microsoft.Framework.PackageManager.Program.Main (System.String[] 参数) [0x00000] in :0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) 在 System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr,System.Reflection.Binder 绑定器,System.Object[] 参数,System.Globalization.CultureInfo 文化)[0x00000] 在 :0
at Microsoft.Framework.PackageManager.BuildContext.Build (System.Collections.Generic.List
任何想法为什么 dnx 。运行有效,但 dnu build 无效?核心库似乎被引用和加载,因此运行正常。 dnu build 命令缺少什么?
【问题讨论】:
-
看起来这是 Mono 的一个已知问题,并且该错误已报告。不幸的是,没有已知的解决方法。 github.com/aspnet/Home/issues/498
-
明白了。感谢您的链接将密切关注它。
标签: c# .net macos asp.net-core dnx