我想從F#編譯代碼在Silverlight中使用。我編譯:Silverlight如何確定程序集是「Silverlight」?
--noframework --cliroot 「C:\ Program Files文件\微軟的Silverlight \ 2.0.31005.0」 --standalone
這會產生一個獨立的組件引用SL框架。但是,當我嘗試添加一個引用生成的程序集,我得到這個錯誤:
You can only add project references to other Silverlight projects in the solution.
什麼是VS插件做決定,這不是一個Silverlight組件?這裏的清單:
// Metadata version: v2.0.50727
.assembly extern mscorlib
{
.publickeytoken = (7C EC 85 D7 BE A7 79 8E) // |.....y.
.ver 2:0:5:0
}
.assembly FSSLLibrary1
{
// --- The following custom attribute is added automatically, do not uncomment -------
// .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = (01 00 01 01 00 00 00 00)
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module 'F#-Module-FSSLLibrary1'
// MVID: {49038883-5D18-7281-A745-038383880349}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003 // WINDOWS_CUI
.corflags 0x00000001 // ILONLY
// Image base: 0x04120000
我不明白它發現它不喜歡什麼;它是純粹可驗證的IL。我比較了一個SL「類庫」程序集,它看起來是一樣的。唯一的區別是一些屬性,但我刪除了那些和VS仍然讓我引用DLL。我甚至將無法驗證的IL添加到「SL庫」DLL中,並且它仍然加載。
有什麼建議嗎?
更新:我已經做了一些戳動,它似乎不是重要的清單。它不喜歡FSharp庫中的IL。他們是可以驗證的,但是那裏有東西引發了拒絕。
如果您有答案,請不要忘記與我們分享。我也想知道這一點。謝謝! – chakrit 2008-10-25 21:56:06
同樣在這裏,我愛F# – 2008-10-28 18:07:26
我一定會發布它,如果我知道它:P – MichaelGG 2008-10-28 18:19:32