我正在Visual Studio下开发一些针对Mono的跨平台软件,并且希望能够通过单击按钮来构建Windows和Linux(特别是Ubuntu)的安装程序.我想我可以通过从后期构建事件中调用cygwin来做到这一点,但我希望充其量只是一个Visual Studio插件,或者更糟糕的是更多的Windows本地方式.看起来封装格式相当简单,这必须是常见的需求.
编辑:由于重复登录问题,在其他帐户下重新提问.
是否有一种可移植的,而非专利限制的方式来播放C#/ .Net中的压缩声音文件?我想在节目中发生的各种事件上播放短暂的"叮当"声.
System.Media.SoundPlayer只能处理WAV,但这些通常很大,可嵌入到可下载的应用程序中.MP3受专利保护,因此即使有完全管理的解码器/播放器,它也不能自由重新分配.可用的最佳格式似乎是OGG Vorbis,但我没有运气让任何C#Vorbis库工作(我设法用csvorbis提取原始PCM,但我不知道如何在之后播放它).
我既不想用我的应用程序分发任何二进制文件,也不想依赖于P/Invoke,因为该项目至少应该在Windows和Linux上运行.只要它们与GPL许可兼容,我就可以捆绑.Net程序集.
Mono已被移植到iPhone了吗?我喜欢为iPhone编写.NET应用程序,而且学习Objective C对我来说不是一个选择.
如何在与MONO一起运行的挂起应用程序中显示线程(stacktraces)?
我知道我可以使用Managed Stack Explorer(MSE)在.NET中完成它.因为应用程序仅与MONO挂起,我需要使用MONO.
或者还有其他想法如何找到悬挂的地方?
我有一个项目,我正在尝试从SQL Server移植到PostgreSQL.除了我无法DbProviderFactory使用Npgsql 之外,我几乎已经完成了所有工作.
Factory = DbProviderFactories.GetFactory("Npgsql");
Run Code Online (Sandbox Code Playgroud)
产量
未处理的异常:System.Configuration.ConfigurationErrorsException:无法找到或加载已注册的.Net Framework数据提供程序.
我该如何解决?
反正有没有从Mono.Cecil的TypeReference转到Type?
我正在尝试将Objective-C中的这个居中代码片段转换为MonoTouch
imageView.frame.origin.x = CGRectGetMidX(view.bounds) -
CGRectGetMidX(imageView.bounds)
Run Code Online (Sandbox Code Playgroud)
但找不到哪里Origin.
每次我启动apache时,我的apache错误日志中都有三个不同的错误消息.我已多次阅读mod_mono配置部分,所以请给我一个提示如何摆脱这些消息.应用程序(3个asp.net项目)运行正常.
第一:
Listening on: /tmp/mod_mono_server_global
Root directory: /
Error: Address already in use
Run Code Online (Sandbox Code Playgroud)
第二:
Error: There's already a server listening on /tmp/mod_mono_server_global
Run Code Online (Sandbox Code Playgroud)
第三:
Listening on: /tmp/mod_mono_server_example.com
Root directory: /srv/www/vhosts/example.com
Error: There's already a server listening on /tmp/mod_mono_server_example.com
Run Code Online (Sandbox Code Playgroud)
vhost配置
MonoServerPath example.com "/usr/bin/mod-mono-server4"
MonoDebug example.com false
MonoSetEnv example.com MONO_IOMAP=all
MonoApplications example.com "/:/srv/www/vhosts/example.com"
<Directory "/srv/www/vhosts/example.com">
MonoSetServerAlias example.com
SetHandler mono
</Directory>
Run Code Online (Sandbox Code Playgroud)
OpenSuse 11.4,Mono 2.10.2
我找不到任何真正有效的方法来正确检测我的C#progrma运行的平台(Windows/Linux/Mac),特别是在返回Unix的Mac上,并且几乎不能与Linux平台区别开来!
因此,基于Mac的特性,我做了一些不太理论化,更实用的东西.
我发布了工作代码作为答案.请评论它是否适合您/可以改进.
谢谢 !
回应:
这是工作代码!
public enum Platform
{
Windows,
Linux,
Mac
}
public static Platform RunningPlatform()
{
switch (Environment.OSVersion.Platform)
{
case PlatformID.Unix:
// Well, there are chances MacOSX is reported as Unix instead of MacOSX.
// Instead of platform check, we'll do a feature checks (Mac specific root folders)
if (Directory.Exists("/Applications")
& Directory.Exists("/System")
& Directory.Exists("/Users")
& Directory.Exists("/Volumes"))
return Platform.Mac;
else
return Platform.Linux;
case PlatformID.MacOSX:
return Platform.Mac;
default:
return Platform.Windows;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Unity3D版本5开发游戏.游戏应该使用已经在C#.NET4.5引擎中编程的严格业务规则.使用Xamarin/Mono,我们希望在Windows,Android,其他方面使其可用...
我尝试将引擎构建到dll中,并将其用作Unity中的托管插件.但Unity使用旧版Mono来编译整个游戏并拒绝使用.NET 4.5 dll.
我真的需要使用这个代码,我考虑将它降级到.NET 3.5,但鉴于已经在引擎上完成的工作,它不是一个可接受的解决方案.
关于android,我认为使用Xamarin获取原生的android代码并将其用作Unity中的本机插件.现在我需要Windows的解决方案.我正在研究如何使用C++中的C#代码来创建一个非托管的DLL,但我很难理解COM interop,C++/CLI或其他方法之间适用的方式.
有没有人知道如何在Unity中包含来自.NET 4.5的代码而没有/只需要很少的努力?
mono ×10
.net ×5
c# ×5
apache ×1
asp.net ×1
audio ×1
cgrect ×1
clr ×1
ios ×1
iphone ×1
macos ×1
mod-mono ×1
mono.cecil ×1
oggvorbis ×1
postgresql ×1
stack-trace ×1
thread-dump ×1
windows ×1
xamarin.ios ×1