Mono中的System.Diagnostics.Tracing

Mono中的System.Diagnostics.Tracing,mono,monodevelop,system.diagnostics,Mono,Monodevelop,System.diagnostics,我正在尝试使用使用Visual Studio for.NET 4.5创建的程序集在MonoDevelop 4.2.3中创建应用程序,但收到以下警告: /usr/lib/mono/4.5/Microsoft.Common.targets:警告:参考 'System.Diagnostics.Tracing,版本=4.0.0.0,区域性=中性, PublicKeyToken=b03f5f7f11d50a3a'未解析(ListenerBinTest) 当然,当我尝试运行应用程序时,它会因以下错误而失败:

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

/usr/lib/mono/4.5/Microsoft.Common.targets:警告:参考 'System.Diagnostics.Tracing,版本=4.0.0.0,区域性=中性, PublicKeyToken=b03f5f7f11d50a3a'未解析(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
我怎样才能解决这个问题


谢谢。

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

但是,您应该能够通过将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下载。不幸的是,下载要求Windows能够安装带有可移植库DLL的.zip文件

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


在我的项目中直接引用System.Diagnostics.Tracing.dll,我可以让Microsoft工作。

非常感谢,但不幸的是,它没有工作。我在windows机器上安装了这个可移植库引用,获取了库,并添加了您提到的文件,现在我收到了两个警告,而不是一个。第一个只是说“/usr/lib/mono/4.5/Microsoft.Common.targets:Warning:Reference“System.Diagnostics.Tracing”not resolved(ListenerBinTest)”,第二个与我之前提到的相同。当我运行它时,我得到了与以前相同的错误。我在哪里可以得到mono 3.4?只有来源?(mono项目页面中的链接为您提供了3.2.3,而不是下载页面中的3.4.0)我认为Mac上只有mono 3.4的二进制版本。据我所知,Mono3.4提供的二进制文件与Microsoft在下载中提供的相同,因此它们应该可以工作。我将在Linux机器上测试它。在OpenSuse 12.3上使用Mono 3.2.3和MonoDevelop 4.0.12进行了测试,它似乎可以工作。我将v4.5/System.Diagnostics.Tracing.dll文件从Microsoft的zip文件复制到Linux机器上。创建了一个C#控制台应用程序,将其转换为.NET 4.5,添加了Tpl DataFlow NuGet包,从微软网站上的示例中复制了代码。如果在引用跟踪PCL程序集之前未找到程序集,则直接运行该程序将失败。然后在添加对System.Diagnostics.Tracing.dll的引用后,应用程序运行时没有任何错误。我使用的是Windows中的数据流库。我在MonoDevelop中安装了NuGet,然后包括了dataflow,现在没有警告,它似乎正在运行。我现在正在检查它是否正常工作。。。
/Library/Frameworks/Mono.framework/Versions/3.4.0/lib/mono/xbuild-frameworks/.NETPortable/v4.5/System.Diagnostics.Tracing.dll