mono - Mono 中的 System.Diagnostics.Tracing

标签 mono monodevelop system.diagnostics

我正在尝试使用我使用 Visual Studio for .NET 4.5 创建的程序集在 MonoDevelop 4.2.3 中创建一个应用程序,但我收到以下警告:

/usr/lib/mono/4.5/Microsoft.Common.targets: Warning: Reference 'System.Diagnostics.Tracing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' not resolved (ListenerBinTest)



当然,当我尝试运行该应用程序时,它失败并显示此错误:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Diagnostics.Tracing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
  at System.Threading.Tasks.Dataflow.TransformBlock`2[System.Net.Sockets.Socket,vtortola.WebSockets.WebSocketListener+WebSocketNegotiationResult]..ctor (System.Func`2 transform, System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions dataflowBlockOptions) [0x00000] in <filename unknown>:0
  at vtortola.WebSockets.WebSocketListener..ctor (System.Net.IPEndPoint endpoint, vtortola.WebSockets.WebSocketListenerOptions options) [0x00000] in <filename unknown>:0
  at vtortola.WebSockets.WebSocketListener..ctor (System.Net.IPEndPoint endpoint) [0x00000] in <filename unknown>:0
  at ListenerBinTest.MainClass.Main (System.String[] args) [0x00010] in /home/vtortola/ListenerBinTest/ListenerBinTest/Program.cs:12

老实说,我没有使用任何与 System.Diagnostics.Tracing 相关的东西。 ,但显然 System.Threading.Tasks.Dataflow做。

这是我的设置:
=== MonoDevelop ===
Version 4.2.3
Installation UUID: 2798c094-3f0b-42d7-afe4-2984107bea4e
Runtime:
    Mono 3.2.8 (tarball Mon Mar 10 19:20:49 UTC 2014) (64-bit)
    GTK+ 2.24.22 theme: oxygen-gtk
    GTK# (2.12.0.0)

=== Build Information ===
Git revision:
Build date: 2014-03-10 20:43:25+0000

=== Operating System ===
Linux
Linux linux-nt8h.site 3.11.10-7-desktop #1 SMP PREEMPT Mon Feb 3 09:41:24 UTC 2014 (750023e) x86_64 x86_64 x86_64 GNU/Linux

我该如何解决这个问题?

谢谢。

最佳答案

不幸的是 Mono 3.2.8 没有 System.Diagnostics.Tracing.dll 作为其完整 .NET 框架实现的一部分。

但是,应该能够通过将 System.Diagnostics.Tracing.dll 的 PCL 版本复制到您的项目中并引用它来解决此问题。这假设您实际上没有在您的项目中使用任何 System.Diagnostics.Tracing.dll,因为 PCL 库可能没有任何实现。

安装 Mono 3.4.0 后,您可以复制 System.Diagnostics.Tracing.dll 文件之一。为了测试一切正常,我将以下文件复制到我的项目中:

/Library/Frameworks/Mono.framework/Versions/3.4.0/lib/mono/xbuild-frameworks/.NETPortable/v4.5/System.Diagnostics.Tracing.dll

这是在 Mac 上。您将需要找到该文件,因为该文件在 Linux 上的位置会有所不同,而在 Mono 3.2.8 中它可能位于不同的位置。它似乎在 Profile7 中,它应该包含在 Mono 3.2.8 中。 .dll 也可从 Microsoft 的 Portable Library Reference Assemblies 中获得。下载。不幸的是,该下载要求 Windows 能够安装带有可移植库 dll 的 .zip 文件。

该文件已复制到项目中,因为在添加引用时无法使用 Xamarin Studio 浏览到该文件。这是因为它位于隐藏的目录中,因为该目录以点开头。

在我的项目中直接引用 System.Diagnostics.Tracing.dll 我可以获得微软的 example DataFlow code在职的。

关于mono - Mono 中的 System.Diagnostics.Tracing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581591/

相关文章:

C# 无法捕获所有异常

c# - resources.designer.cs 不是自动生成的。 (MonoDevelop 初学者)

.net - 远程调试和状态检查设计

c# - monodevelop System.DllNotFoundException 调用 C++ 库中的函数

c# - 观察程序应用程序在进程停止、挂起或不响应时重新启动进程

.net - 如何将 Mono .exe 转换为 OS X 的 bundle ?

c# - 在 Ubuntu 下使用 mono 运行使用 VS2015 开发的 ASP.Net MVC 项目

c# - 我如何摆脱 MonoDevelop 中烦人的 ctrl+backspace 行为?

c# - 如何使用 Lazy<StackFrame> 创建可预测的输出

c# - 如何在远程机器上执行进程,在 C# 中