Linux Mono C#错误:无法打开程序集'Bovine.csproj':文件不包含有效的CIL图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux Mono C#错误:无法打开程序集'Bovine.csproj':文件不包含有效的CIL图像相关的知识,希望对你有一定的参考价值。

我在Visual Studio 2017上的Windows 10上用C#编写了一个项目。我最近决定切换到Linux Centos 7并使用mono来编译我的代码。我的项目目前有超过12个单独的cs类文件。我设法使用xbuild命令重建我的csproj文件。该文件现在在我的命令终端中显示为可执行文件。

当我尝试运行命令时:

mono Bovine.csproj

我收到错误:无法打开程序集'Bovine.csproj':文件不包含有效的CIL图像。

经过一些研究,我发现当其他人有常规的cs文件时,就会发生这个错误。通常,解决方案似乎是使用mcs命令编译cs文件,然后运行生成的可执行文件。这不起作用,因为我无法编译csproj文件。我无法真正编译每个单独的类cs文件,因为它们都相互依赖/调用。

我确信我的项目已在Visual Studio 2017上编译和运行。我还安装了单声道完整版,并且相当确定我拥有所有必需的程序集。有没有人对这个问题有所了解?

答案

你不直接在你的项目上调用monomono命令用于运行已编译的汇编(因此抱怨您的XML csproj文件不包含任何有效指令)。

你已经使用xbuild正确编译了这个项目(虽然你真的应该使用msbuild,因为xbuild已被弃用,而xbuild此时可能只是调用msbuild)?在这种情况下,找到你编译的.exe文件(通常在bin / Debug或bin / Release文件夹中),然后用命令运行它。

以上是关于Linux Mono C#错误:无法打开程序集'Bovine.csproj':文件不包含有效的CIL图像的主要内容,如果未能解决你的问题,请参考以下文章

Mono(Linux,C#):无法找到同一文件夹中的DLL(System.DllNotFoundException)

C#console应用程序可以在没有Mono的Linux下运行吗?

在Mono中获取MissingDLL错误

试图避免 AppDomains

Mono 上的 MVC 5:无法加载文件或程序集“System.Web.Entity”或其依赖项之一

如何更改汇编目录? VS无法在文件夹中找到程序集