Castle.Core'u içeren bir FakeItEasy sürümü oluşturmaya çalışıyorum. ILMerge hakkında okudum ve ihtiyacım olan çözüm gibi görünüyordu. Download ve FakeItEasy inşa ettikten sonra ben gerekli tüm dosyaları (FakeItEasy.dll (.NET4), Castle.Core.dll (.NET4), ilmerge.exe, FakeItEasy.snk) aynı klasöre kopyaladı. Sonra aşağıdaki komutu çalıştırılmadan:ILMerge throwing exception ile imzalı kitaplık oluşturma
ilmerge
/keyfile:FakeItEasy.snk
/out:..\FakeItEasy.dll
/t:library
/targetplatform:v4,C:\Windows\Microsoft.NET\Framework\v4.0.30319
FakeItEasy.dll Castle.Core.dll
Ve aşağıdaki sonuç var: Ben birleştirilmiş montaj gayet oluşturulur "/keyfile:FakeItEasy.snk" yazmayan varsa
An exception occurred during merging:
An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
at System.Compiler.Writer.MscorsnStrongNameSignatureGeneration(String wszFilePath, String wszKeyContainer, Byte[] pbKeyBlob, Int32 cbKeyBlob, IntPtr ppbSignatureBlob, IntPtr pcbSignatureBlob)
at System.Compiler.Writer.WritePE(String location, Boolean writeDebugSymbols, Module module, Boolean delaySign, String keyFileName, String keyName)
at System.Compiler.Writer.WritePE(CompilerParameters compilerParameters, Module module)
at ILMerging.ILMerge.Merge()
at ILMerging.ILMerge.Main(String[] args)
, ama bu imzalı bir versiyona ihtiyacım olduğu için bana yardım etmiyor.
Ben de hedef platform belirten denedim:/targetplatform:v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319
fakat sonuçlar aynıydı.
Hey, aynı sorunu yaşadığım için buna bir cevap buldunuz mu? – Confused
Hiç bir zaman anlamadı. NuGet aracılığıyla dağıtılan FakeItEasy sürümünü kullanarak sona erdi, böylece sorun gitti. –
Benim için çalışan bir geçici çözüm, 64 bit yerine 32 bit modunda çalışmasını sağlamak için "corflags ilmerge/32bitreq +/force" idi. – jnm2