关于c#:如何在Visual Studio 2008中构建IKVM?

关于c#:如何在Visual Studio 2008中构建IKVM?

How to get IKVM to build in Visual Studio 2008?

我从http://sourceforge.net/cvs/?group_id=69637下载了IKVM源(http://www.ikvm.net/)

现在我试图让它在Visual Studio 2008中构建并且卡住了。有没有人知道如何构建这个东西的文档,或者甚至可以给我指点?

我已经尝试打开ikvm8.sln,它会打开所有项目,但是尝试构建解决方案会导致一堆"类型或命名空间无法找到"错误。

你可能猜到我不是Visual Studio专家,而是习惯在Eclipse中使用Java。

所以,我正在寻找:逐步说明或指向如何在Visual Studio中构建IKVM的文档的链接。

如果您需要更多信息,请告诉我。谢谢你的帮助!

编辑:我也尝试过手册"MsBuild.exe IKVM8.sln",但也得到了一堆:

1
2
3
4
5
6
JniInterface.cs(30,12): error CS0234: The type or namespace name 'Internal' does not exist in the namespace 'IKVM' (a
re you missing an assembly reference?)
JniInterface.cs(175,38): error CS0246: The type or namespace name 'ClassLoaderWrapper' could not be found (are you mi
ssing a using directive or an assembly reference?)
JniInterface.cs(175,13): error CS0246: The type or namespace name 'ClassLoaderWrapper' could not be found (are you mi
ssing a using directive or an assembly reference?)

编辑#2:我注意到了一个"ikvm.build"文件,所以我下载并运行了该文件夹,这让我更进了一步。一些事情开始成功构建,不幸的是我现在得到以下错误:

IKVM本地-win32的:

1
2
3
4
5
6
7
8
9
10
11
12
13
            [mkdir] Creating directory 'C:\Documents and Settings\...\My Documents\ikvm\ikvm
ative
elease'
.
               [cl] Compiling 2 files to 'C:\Documents and Settings\...\My Documents\ikvm\ikvm
ative
elease'
.
        BUILD FAILED
        C:\Documents and Settings\...\My Documents\ikvm\ikvm
ative
ative.build(17,10):
        'cl' failed to start.
           The system cannot find the file specified
        Total time: 0.2 seconds.

编辑#3:确定通过将cl.exe放在路径中,但仍然遇到其他错误。请注意,这只是用于在控制台上构建它,例如与南特。有没有办法让它在Visual Studio中构建?那会很难过......

编辑#4:下一步是安装GNU classpath 0.95,现在看起来我需要一个特定的OpenJDK安装...... Linux AMD64 ?!

1
2
3
4
             [exec] javac: file not found: ..\..\openjdk6-b12\control\build\linux-amd64\gensrc\com\sun\accessibility\internal
esources\accessibility.java
             [exec] Usage: javac <options> <source files>
             [exec] use -help for a list of possible options

编辑#5:得到了作者的回答。见下文或http://weblog.ikvm.net/CommentView.aspx?guid=7e91b51d-6f84-4485-b61f-ea9e068a5fcf让我们看看它是否有效......

编辑#6正如我所担心的,下一个问题是:"无法打开windows.h",请在此处查看单独的问题。

最终编辑:找到解决方案!在Lib和Path环境变量中获取Platform SDK文件夹之后,我在下面描述的解决方案对我有用。


我不知道这会为你做,但你能尝试从命令行构建吗?

msbuild ________

我认为这是由于同样的问题我如何构建应用程序。


这就是我从源代码构建IKVM 8.1.5717.0的方法。 Visual Studio不是必需的。

  • 创建一个文件夹:
    C: IKVM

  • 将上述文件夹添加到PATH(例如,设置PATH =%PATH%; c: ikvm并保持命令提示符打开以供稍后使用)。

  • 下载:
    ikvmsrc-8.1.5717.0.zip(http://www.frijters.net/ikvmsrc-8.1.5717.0.zip)

  • 解压缩并将"ikvm-8.1.5717.0"文件夹放在c: ikvm 中

  • 下载:
    openjdk-8u45-b14-stripped.zip(http://www.frijters.net/openjdk-8u45-b14-stripped.zip)

  • 解压缩并在c: ikvm 中放置"openjdk-8u45-b14"文件夹

  • 下载:
    Java 8 SDK(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

  • 安装并确保将位置添加到路径中

  • 下载:
    NAnt 0.92(https://sourceforge.net/projects/nant/files/nant/0.92/nant-0.92-bin.zip/download)

  • 解压缩并将"nant-0.92"文件夹放在c: ikvm 中

  • ICSharpCode.SharpZipLib.dll(http://www.icsharpcode.net/opensource/sharpziplib/Download.aspx)

  • 将"ICSharpCode.SharpZipLib.dll"放在C: ikvm ikvm-8.1.5717.0 bin 中

  • 在文本编辑器中打开以下文件并更改版本号:
    C: IKVM IKVM-8.1.5717.0 CommonAssemblyInfo.cs.in

  • 使用之前的命令提示符,cd到:
    C: IKVM IKVM-8.1.5717.0 IKVM

  • 跑:
    .. 楠-0.92 BIN nAnt.exe

  • 如果成功,所有二进制文件将在:
    C: IKVM IKVM-8.1.5717.0 BIN


好的,刚收到作者的以下回复:http://weblog.ikvm.net/CommentView.aspx?guid = 7e91b51d-6f84-4485-b61f-ea9e068a5fcf

If you want to build from cvs, you're on your own. However, you can more easily build from source if you use an official release.

If you download ikvm-0.36.0.11.zip, classpath-0.95-stripped.zip and openjdk-b13-stripped.zip from SourceForge (the last two are under the ikvm 0.36.0.5 release) you have all the sources that are needed.

Now you'll have to open a Visual Studio 2008 Command Prompt (i.e. one that has cl.exe and peverify in the path).

Then in the ikvm root directory, do a"nant clean" followed by"nant". That should build the whole project. After you done that, you should be able to build in Visual Studio (debug target only), but you may need to repair the assembly references in the projects (unless you have ikvm installed in c:\ikvm).

Regards,
Jeroen

编辑:确保Platform SDK文件夹位于Path和Lib环境变量后,这对我有用。谢谢,Jeroen!


推荐阅读