C# 让JSIL编译时遇到问题

C# 让JSIL编译时遇到问题,c#,xna,monogame,jsil,C#,Xna,Monogame,Jsil,我尝试使用XNA的每一个JSIL的现代版本最终都会出现这个错误 过去我在任何地方都曾寻找过关于为什么它不能运行的信息,最后我得到了一个关于XNA4.0没有正确安装之类的答案 此错误在3台不同的计算机上重现 我可以让一个版本的JSIL正常工作,我可以从git存储库(JSIL-0.7.6)下载一个版本,如果您不提供构建无法支持的任何内容,它将与XNA一起工作 但是这些版本已经发布了几年了。如果能让一个现代化的建筑运转起来,那就太好了 我试图提供一些推测,但我在这里有点不知所措 JSIL-0.7.6

我尝试使用XNA的每一个JSIL的现代版本最终都会出现这个错误

过去我在任何地方都曾寻找过关于为什么它不能运行的信息,最后我得到了一个关于XNA4.0没有正确安装之类的答案

此错误在3台不同的计算机上重现

我可以让一个版本的JSIL正常工作,我可以从git存储库(JSIL-0.7.6)下载一个版本,如果您不提供构建无法支持的任何内容,它将与XNA一起工作

但是这些版本已经发布了几年了。如果能让一个现代化的建筑运转起来,那就太好了

我试图提供一些推测,但我在这里有点不知所措

JSIL-0.7.6-不会在任何CPU中构建,要求将解决方案平台设置为x86

最新的JSILGit版本-许多项目现在都设置为AnyCPU,将它们设置为x86将产生各种各样的错误或警告

因此,我认为在JSIL中的某些项目从x86支持发展到64位支持时,我可能在构建过程中遇到了问题

我已安装visual studio express 2010和visual studio社区

我尝试过使用XNA刷新之类的方法。使用emscription、FNA等


在一个理想的世界里,我宁愿让JSIL与monogame一起工作,但我在JSIL的任何版本上都会遇到很多错误,这似乎不值得去打扰。将monogame项目移植到xna并不太麻烦

Trunk JSIL设计为使用VS2015社区构建。大多数依赖项都转移到了NuGet,这意味着您需要在首次构建包之前恢复包—VS2015将自动为您恢复包;在命令行中,您可能需要执行手动NuGet包还原

如果要使用XNA支持,则需要编译为
Debug | Any CPU
Release | Any CPU
。这应该仍然有效,因为编译器JSILc现在有32位和64位目标。如果使用32位目标(
Compiler.Executor.32bit
),将确保编译器在32位模式下运行,并且XNA位将工作。32位目标生成为
JSILc.exe
,64位目标生成为
JSILc.AnyCPU.exe

就内容管道而言,我需要看到更多的日志文本来推测它为什么不起作用。。。但一般来说,内容管道在命令行msbuild中不能可靠地工作。最好先使用VisualStudio一次性构建游戏项目,以便正确构建所有内容,此时命令行msbuild将更好地处理它

对于VS2015中的XNA,请使用codeplex的VS2013软件包: 在VS2015允许您安装它之前,您可能需要编辑包内的清单,但它可以完美地工作

使用VS2013构建可能会很好,但我最近没有这样做

如果您仍然有问题,请尝试通过执行NoXNA构建(Debug | NoXNA而不是Debug | AnyCPU)排除基本问题,并确保一切都在那里工作。验证工作构建的一个简单方法是使用VS2015测试运行程序运行“SimpleTests”测试套件,这需要相对较短的时间,并将识别编译器或构建管道的基本问题


请记住,当您从命令行调用诸如msbuild或csc之类的工具时,您将获得的版本有些不可预测
VS2015 x64本机工具命令提示符
VS2015 x86本机工具命令提示符
是两个“开始”菜单快捷键,如果您有VS2015,将获得加载了正确工具的命令提示符。考虑到您已经安装了VS2010,在尝试构建时可能正在使用旧版本的msbuild和/或csc。

谢谢Katelyn,这篇文章很棒。我主要是为XNA安装了express 2010。我卸载了我安装的VS 2015的所有内容(XNA,VS Express 2010,VS 2013),对于XNA,我下载了这个版本,我成功地用Visual Studio 2015安装了它,这要感谢这篇文章的顶部答案:解决方案中的红色错误,但如果我像你说的那样直接指向exe,它现在可以工作了。现在我必须弄清楚,既然内容没有生成,我现在应该如何获取内容清单。我运行了所有的测试。27次通过,256次失败,我猜这很糟糕吧?在失败的测试中有三个SimpleTest。更新来自更多修补程序。我不知道为什么测试失败了,忽略了。我认为他们没有传递准确的信息。在另一台电脑上测试,结果正常。有一件事我无法在最新的git版本中通过,我不断地发现XNA颜色未定义的例外情况,我发现它不像以前那样构建XNAcolor.js,所以我从和旧版本中添加了它,并将其读取到清单中。我最后出现了一个错误:不平衡的画布保存/还原。从非预设RBG值生成所有XNA颜色也会引发不同的错误,但线条相同。