Nano Server折腾手记

最近打算用Nano Server搭个测评机节点。
阿里云那边工作人员态度呵呵了,非要说什么镜像里要求内存2G,无稽之谈啊。
先本地弄好吧。

首先是参考了一下《玩》的wget。
有了wget就好了,什么都有了。
然后是配dotnet 2.0,git什么的。
https://www.microsoft.com/net/download/dotnet-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稳了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注