🌑

小羊儿的心情天空

Nano Server折腾手记

Jun 8, 2018 由 小羊

最近打算用Nano Server搭个测评机节点。

阿里云那边工作人员态度呵呵了,非要说什么镜像里要求内存2G,无稽之谈啊。先本地弄好吧。

首先是参考了一下《玩》的wget。有了wget就好了,什么都有了。

然后是配dotnet 2.0,git什么的。.NET Core SDK 2.1.300 选x64 binaries,下载了解压进 C:\Program Files\dotnet 好了。

最后设置环境变量:

[environment]::SetEnvironmentVariable("Path", "C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Git\cmd;C:\Program Files\dotnet")

从14393的Win10SDK里拖了一堆东西出来,放进了 C:\Program Files\msvc,当作msvc的编译器。当然要扔掉非Hostx64非Targetx64的所有东西啦。

然后从win10sdk里把ucrt的头文件合并进去,还有kernel32.lib和uuid.lib放进去,可以编译hello world了。 其他的编译没有测试,然后后面要编译自己的dll所以需要其他的那些.h和.lib。把shared和um等等合并起来了,放在msvc\um里了。

有一点吐槽的,系统我用的是en-US的,然后我把vctools和2052复制过去以后,link不出错误提示。然后删了2052发现link出错误提示了,但是cl就挂了,需要clui.dll……好吧就把linkui.dll删了吧,其他的都留着。

修改参数编译测评机核心,顺带测试一下编译器。

然后,编译JudgeW32.dll:

mkdir obj
cd obj
cl /nologo /EHsc /I"C:\Program Files\msvc\include" /I"C:\Program Files\msvc\um" ..\dllmain.cpp /c
cl /nologo /EHsc /I"C:\Program Files\msvc\include" /I"C:\Program Files\msvc\um" ..\JudgeW32.cpp /c
cl /nologo /EHsc /I"C:\Program Files\msvc\include" /I"C:\Program Files\msvc\um" ..\stdafx.cpp /c
link /nologo /LIBPATH:"C:\Program Files\msvc\lib" /LIBPATH:"C:\Program Files\msvc\um" /DLL dllmain.obj JudgeW32.obj stdafx.obj /out:JudgeW32.dll /def:..\export.def
dumpbin /exports JudgeW32.dll

编译其他dotnet core项目:

dotnet build some.csproj

目前镜像总大小是4.2G,感觉还不错,阿里云1C1G20G稳了。