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稳了。