所以我是C#中的一名相當中級的程序員,最近我剛剛癡迷於文件大小和創建可用的最小文件。爲此,我意識到使用MSIL進行更簡單的程序可以減少很多尺寸。IL - 我做錯了什麼?
所以,我試圖將以下
- 創建一個簡單的下載。易於管理。下載我的文件並將它們保存在temp中並運行它們。管理得到它的工作和1,5kb大小,非常有用!
現在,在這樣做後,我想......爲什麼寫文件時,我可以簡單地使用反射和運行他們必須使用磁盤?
這就是問題的走過來的,我無法找到解決方案。
這段代碼有什麼問題?
.assembly a{}
.subsystem 0x0002
.class private AA1.B
extends [mscorlib]System.Object{
.method private static void a(){
.entrypoint
.maxstack 4
.locals init (
[0] string str,
[1] uint8[] buffer)
nop
newobj instance void [System]System.Net.WebClient::.ctor()
ldstr "http://www.mywebwiste.com/myDotNetFile.exe"
call instance uint8[] [System]System.Net.WebClient::DownloadData(string)
stloc.1
ldloc.1
call class [mscorlib]System.Reflection.Assembly [mscorlib]System.Reflection.Assembly::Load(uint8[])
callvirt instance class [mscorlib]System.Reflection.MethodInfo [mscorlib]System.Reflection.Assembly::get_EntryPoint()
ldnull
ldc.i4.0
newarr object
callvirt instance object [mscorlib]System.Reflection.MethodBase::Invoke(object, object[])
}}
我得到編譯的錯誤是「引用未聲明的extern程序集系統」。和「引用未聲明的extern程序集mscorlib」。我是不是在宣佈他們?它仍然編譯它們,但運行它只是崩潰。
出於興趣,* *爲什麼你迷戀文件的大小?你實際上是在一個非常有限的環境中運作,還是僅僅爲了興趣? – 2014-11-21 10:51:52
「這就是問題出現的地方,我無法找到解決方案」 - 什麼問題?您向我們展示了一些代碼,但沒有說明問題是什麼。你應該描述你實際面臨的問題。 (目前還不完全清楚問題在於您是如何使用反射,還是使用IL。) – 2014-11-21 10:52:29
我無法在工作場所使用USB記憶棒,因此無法完成此項工作。 – 2014-11-21 11:13:15