标签: mono

PowerShell脚本是否在Mono下运行?

PowerShell脚本是否在Mono下运行?我想在Mac上运行它们.

powershell mono

17
推荐指数
2
解决办法
7186
查看次数

为什么有四个单声道C#编译器?

本页介绍了四种不同的单声道编译器--mcs/gmcs/smcs/dmcs.

对我来说,有四个C#编译器有点奇怪.通常,较新版本的编译器保持向后兼容性.

我认为这是因为运行时支持问题,但Microsoft的C#有一个支持所有运行时版本的csc.exe.

mono

17
推荐指数
2
解决办法
7911
查看次数

移植时出现Mono resources.resx问题('</ data>'上resx xml文件中的奇怪错误)

所以我有一个C#应用程序.它有一些链接到它的资产,并且在编译期间被嵌入.应用程序在Windows上编译和运行完美.当用mono测试兼容性时,告诉所有内容都是正确的.如果我尝试编译给出一个错误的n xml文件

/home/rupert/Desktop/CloudObserverLite(4)/CloudObserverLite/Properties/Resources.resx: Error: Error: Invalid ResX input.
Position: Line 123, Column 5.
Inner exception: value
 (CloudObserverLite)
Run Code Online (Sandbox Code Playgroud)

如果我们看看resx xml

  ...<resheader name="writer">

    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

  </resheader>

  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

  <data name="framework_4_5_0_17689_swz" type="System.Resources.ResXFileRef, System.Windows.Forms">

    <value>../assets/framework_4.5.0.17689.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>

  </data>

  <data name="index_html" type="System.Resources.ResXFileRef, System.Windows.Forms">

    <value>../assets/index.html;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251</value>

  </data>...
Run Code Online (Sandbox Code Playgroud)

第123行将是第一个 </data>标记.

这是所有resx文件,如果它可以提供更多信息

 <?xml version="1.0" encoding="utf-8"?>

<root>

  <!-- 

    Microsoft ResX Schema 



    Version 2.0



    The primary goals of this format is to allow a simple XML …
Run Code Online (Sandbox Code Playgroud)

.net c# mono resources embedded-resource

17
推荐指数
1
解决办法
4491
查看次数

从C#运行JasperServer报告

Jasper Reports是Crystal Reports的绝佳开源替代品.它非常适用于单页PDF页面,例如多页报告的字母和发票.然而,它不是非常友好的.NET,并且让C#/ Mono与JasperServer玩得很好并不富有成效.

有没有人从C#获得有关如何在JasperServer上运行报告的代码示例,并附加带有SOAP请求的XML数据集?它需要在Mono上运行,因此Microsoft.Web.Services2是不可能的.

我试图推出自己的肥皂请求.Jasper Server似乎接受了它,但我似乎无法得到任何响应,而不是服务器500错误.我没有附加一个MTOM附件.

var sb = new StringBuilder();

sb.AppendLine("<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">");
sb.AppendLine("<s:Body s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">");
sb.AppendLine("<q1:runReport xmlns:q1=\"http://axis2.ws.jasperserver.jaspersoft.com\">");

sb.AppendLine("<requestXmlString xsi:type=\"xsd:string\">");
sb.AppendLine("<request operationName=\"runReport\" locale=\"en\">");
sb.AppendLine("    <argument name=\"RUN_OUTPUT_FORMAT\">PDF</argument>");
sb.AppendFormat("    <resourceDescriptor name=\"\" wsType=\"\" uriString=\"{0}\" isNew=\"false\">", "/JourneyReport");
sb.AppendLine("      <label>null</label>");
sb.AppendLine("      <parameter name=\"testparam\">1</parameter>");
sb.AppendLine("    </resourceDescriptor>");
sb.AppendLine("  </request>");
sb.AppendLine("</requestXmlString>");
sb.AppendLine("</q1:runReport>");
sb.AppendLine("</s:Body></s:Envelope>");


var webRequest = (HttpWebRequest)WebRequest.Create("http://localhost:8080/jasperserver/services/repository");
webRequest.Credentials = new NetworkCredential("jasperadmin","jasperadmin");
webRequest.PreAuthenticate = true;

webRequest.Headers.Add("SOAPAction","");

//Set HttpWebRequest properties
byte[]  bytes = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
webRequest.Method = "POST";
webRequest.ContentLength = bytes.Length;
webRequest.ContentType = "text/xml; encoding='utf-8'";

//Get Stream object 
var …
Run Code Online (Sandbox Code Playgroud)

c# mono soap jasper-reports jasperserver

17
推荐指数
1
解决办法
1万
查看次数

以编程方式确定Mono运行时版本

以编程方式确定Mono运行时版本的推荐方法是什么?

当我们的.Net应用程序与旧版本的Mono一起使用时,我们遇到了各种问题.有时我们可以解决这些问题,如果我们知道我们正在处理哪个版本,但有时我们不能.

我们的解决方案是以编程方式检测Mono版本,然后我们可以透明地应用变通方法.如果Mono版本太旧,那么我们会提示用户升级.

我们可以发现Mono是我们的运行时,有这样的东西:

bool isMonoRuntime = Type.GetType("Mono.Runtime") != null;
Run Code Online (Sandbox Code Playgroud)

我们怎样才能可靠地确定单声道版本而不间接推断它?需要说明的是,我们需要Mono版本号,而不是.Net CLR版本号.

.net c# mono

17
推荐指数
1
解决办法
4600
查看次数

Mono中的自托管WCF服务

我目前正在开发一个C#项目,它是一个控制台应用程序,其中包含一个WCF soap服务.

下面是我用来打开主机的代码.

var baseAddress = new Uri(Configuration.soapServerSettings.soapServerUrl);
var host = new ServiceHost(typeof(SoapServer), baseAddress);
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();

var meta = new ServiceMetadataBehavior()
{
    HttpGetEnabled = true,
    HttpGetUrl = new Uri("", UriKind.Relative)
};

host.Description.Behaviors.Add(meta);

var debugBehaviour = new ServiceDebugBehavior()
{
    HttpHelpPageEnabled = true,
    HttpHelpPageUrl = new Uri("", UriKind.Relative),
    IncludeExceptionDetailInFaults = true
};

ServiceEndpoint endpnt = host.AddServiceEndpoint(
    typeof(ISoapInterface),
    basicHttpBinding,
    "EmailServer");

host.Description.Behaviors.Remove(typeof(ServiceDebugBehavior));
host.Description.Behaviors.Add(debugBehaviour);
host.Open();
Run Code Online (Sandbox Code Playgroud)

这在Windows上完全正常,但在Linux上,当我浏览到它时,我收到以下消息:

XmlSchema错误:命名项 http://schemas.microsoft.com/2003/10/Serialization/:anyType已包含在架构对象表中.考虑将MONO_STRICT_MS_COMPLIANT设置为"是"以模仿MS实现.相关架构项SourceUri:,第3行,第3位.

我不知道从哪里开始研究这个问题.

感谢您的任何帮助,您可以提供

更新: 根据Rob Goodwins的建议,我添加了MONO_STRICT_MS_COMPLIANT环境变量,它看起来确实有效,我可以访问该服务.但是,我现在遇到了另一个问题.我有一个PHP页面,它每隔几秒就会发出几个请求,但过了一分钟后,我的应用程序崩溃了.

我得到以下异常:

此XmlWriter在此状态下不接受StartTag错误.在System.Xml.XmlTextWriter.WriteStartElement(System.String前缀,System.String localName,System.String namespaceUri)[0x00000] in:0 at …

c# mono wcf self-hosting

17
推荐指数
1
解决办法
4541
查看次数

在DLL中使用default关键字

default在DLL项目中使用关键字时,我遇到了一个非常奇怪的问题.在我的DLL项目(使用VS2013编译)中,我有以下类:

public class BaseClass<T>
{
    public T value;
    public bool enabled;

    public BaseClass ( T value = default(T), bool enabled = true )
    {
        this.value = value;
        this.enabled = enabled;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我在DLL项目中使用它,它可以很好地工作.我可以创建从这个基类派生的类而不会出现问题.但是,只要我尝试在另一个项目中使用DLL(使用Mono 2.0.0编译),从基类派生值类型会导致编译器错误.这个:

public class ChildClass : BaseClass<int>
{
}
Run Code Online (Sandbox Code Playgroud)

导致这个:

Assets/ChildClass.cs(8,14):错误CS1502:BaseClass <int> .BaseClass(int,bool)'的最佳重载方法匹配有一些无效的参数

Assets/ChildClass.cs(8,14):错误CS1503:参数#1' cannot convertnull'表达式为'int'类型

但是,具有值类型的基类可以在没有问题的字段中使用:

public class OtherClass
{
    public BaseClass<int> baseInt;
}
Run Code Online (Sandbox Code Playgroud)

我使用ILSpy查看了DLL并注意到了这一点:

public class BaseClass<T>
{
    public T value;
    public bool enabled;
    public BaseClass(T value = null, bool enabled = true) …
Run Code Online (Sandbox Code Playgroud)

c# mono default

17
推荐指数
1
解决办法
179
查看次数

C#跨平台应用程序上的SQLite

有人可以帮助/指导我在Linux(MONO)和Windows(.NET)上使用SQLite lib

在linux上我使用原生单声道sqlite客户端,在Windows上我使用http://sqlite.phxsoftware.com/

有没有办法定义这样的'使用'指令:

#if (linux)
  using Mono.Data.Sqlite;
#else
  using System.Data.SQLite;
Run Code Online (Sandbox Code Playgroud)

另一个问题是两种实现上的差异很小,例如:

cmd = new SqliteCommand(); // mono
cmd = new SQLiteCommand(); // sqlite.phxsoftware.com
Run Code Online (Sandbox Code Playgroud)

等待任何帮助

如果您知道更好简单的方法,那么非常感谢信息.

谢谢

.net c# sqlite mono orm

16
推荐指数
2
解决办法
7210
查看次数

vscode:如何设置调试mono/c#?

我正在尝试设置Visual Studio代码(https://code.visualstudio.com/docs/debugging)来调试win8上的c#/ mono.我还安装了最新版的mono.

我在launch.json中添加了一个配置,并将'type'更改为mono(也尝试在调试exe中指向'program'),但我得到错误:

initialize:无法为适配器ID"mono"创建调试会话

你如何在ac #project上设置调试?

编辑:似乎可能需要一个gulp脚本?在Ubuntu上使用VSCode编译C#项目

c# mono visual-studio-code

16
推荐指数
1
解决办法
5654
查看次数

GTK#图像按钮在运行时不显示图像

我试图在GTK中使用图像按钮#(Xamarin Studio).我将图像设置为按钮,在UI Builder中,图像即将出现.

在此输入图像描述

但是当我运行程序时,按钮中没有图像

在此输入图像描述

我在不同版本的IDE和不同平台(Mac和Windows)上试过这个

请帮忙

更新:MainWindow.cs

using System;
using Gtk;

public partial class MainWindow: Gtk.Window
{
    public MainWindow () : base (Gtk.WindowType.Toplevel)
    {
        Build ();
    }

    protected void OnDeleteEvent (object sender, DeleteEventArgs a)
    {
        Application.Quit ();
        a.RetVal = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

gtk-gui文件夹中,我可以找到这些文件

generated.cs

// This file has been generated by the GUI designer. Do not modify.
namespace Stetic
{
    internal class Gui
    {
        private static bool initialized;

        internal static void Initialize (Gtk.Widget iconRenderer)
        {
            if ((Stetic.Gui.initialized == …
Run Code Online (Sandbox Code Playgroud)

c# gtk mono gtk# xamarin

16
推荐指数
1
解决办法
2139
查看次数