kullanarak İLMerge .NET 4 kitaplıkları
İki sorun var
1) Temel .NET Montaj Değil İLMerged Montaj Dahil
Benim post-build yükseltme sonra sorun İLMerge kullanarak geçiriyorum .NET 3.5 Visual Studio 2008 .4/NET Visual Studio 2010. Ayarlanmış olan çeşitli projeler ile bir Çözüm buldum ".". NET Çerçeve 4 Tek bir DLL içinde tek bir proje DLL birleştirme İLMerge için aşağıdaki komutu kullanın:
if not $(ConfigurationName) == Debug
if exist "C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe"
"C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe"
/lib:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
/lib:"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies"
/keyfile:"$(SolutionDir)$(SolutionName).snk"
/targetplatform:v4
/out:"$(SolutionDir)bin\development\$(SolutionName).dll"
"$(SolutionDir)Connection\$(OutDir)Connection.dll"
...other project DLLs...
/xmldocs
Kapalı konumunu belirtme gidersem .NET 4 çerçeve dizin, ben bir Sistem" İLMerge hata. "Çözülmemiş bir derleme başvurusu İzin Verilmiyor: Eğer kapalı MSTest dizin konumunu belirtmek gidersem, bir "derleme başvurusu Verilmiyor Çözümlenmemiş: Microsoft geliyor.Studio.QualityTools.UnitTestFramework" hata.
İLMerge yukarıdaki komut çalışır ve bir DLL dosyası oluşturur. Ben başvuru yaparken başka bir DLL .Proje, ancak, ve içindeki kod kullanmayı deneyin, aşağıdaki uyarı alıyorum NET 4 C#:
Temel referans "MyİLMergedDLL" dolaylı bir bağımlılık vardır çünkü çözümlenemedi ."Mscorlib,=4.0,=, Kültür tarafsız=b77a5c561934e089" daha yeni bir sürüm var "" sürümünden "4.0.0.0" şimdiki hedef çerçevesinde. 4.0.65535.65535 Sürüm PublicKeyToken NET Çerçeve montaj
Ben o /targetplatform:v4
bayrağı kaldırmak ve kullanmak için çalışırsanız MyILMergedDLL.dll aşağıdaki hatayı alıyorum:
Türü 'System.Xml.Seri hale getirme.'Yapılmayan bir derlemede tanımlanmış. ıxmlserializable Derleme için başvuru eklemeniz gerekir 'System.Xml, Version=4.0.0.0,=Kültür neutral, PublicKeyToken=b77a5c561934e089'.
Bunu yapmasam daha iyi gibi görünmüyor. Myilmergeddll.dll benim API kullanan her kim olursa olsun başvurular için başvuru ekleyin. Nasıl bu çevrede alabilirim?
2) Birleştirilmiş Montaj Kullanarak Sadece Durumuna
Düzenleme:bunun ötesinde, eğer myilmergeddll.dll bazı kod myilmergeddll.dll yapma kullanın kullanan tüketici proje System.Xml
başvuru bu durum verir ekledim bile:
Sistem.Durumuna: 'System.türü yüklenemedi İşlev`2' derleme ',=1.0.1.1,=Kültür neutral, PublicKeyToken MyİLMergedDLL Version=...'.
Bu tüketim benim proje kodu; TypeLoadException
neden olan bir satırı ikincisi:
var keys = new[] {"a", "b", "c"};
var row = new Row(keys);
TypeLoadException
atar Row
belirli yapıcı tek bir proje DLL başvururken bu yapıcı kullandığımda MyILMergedDLL
ve ortak bir sınıf içinde tanımlanan, gayet iyi çalışıyor. İstisna olsun IL-birleştirilmiş DLL başvururken bu oluşturucu kullanın. Neler oluyor bilmiyorum.
İşte o kurucu:
public Row(IEnumerable<string> keys) : base(keys) { }
Ve bir ifade base
bu kodu vardır:
foreach (string key in keys.Where(
key => !string.IsNullOrEmpty(key)
))
{
_dic.Add(key, string.Empty);
}
CEVAP
64 sorunları çözmek için very recent release vardı. Eğer hala sorunlarınız (mbarnett . eğer Mike Barnett ile doğrudan iletişime geçin ^em>atmicrosoftnoktacom)
Ek. /lib:"C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
seçenek hakkında çok kötü bir şey var. Bu sorun programcılar bir sürü son zamanlarda, sonra elde edilmiştir .NET 4.5 serbest bırakıldı. Bu dizin vardırdeğiliçin uygun bir .NET 4.0 referans derlemeler. İçeriği 4.5 derlemeleri üzerine alır, artık bir hedef için kullanabilirsiniz .NET 4.0 yükleyin. Olsun çalışma zamanı hata çok garip, programı bazı türleri artık. [Uzatma] özniteliği, ICommand arayüzü bazen genellikle bombalama.
Bu tür, ve bazı Diğerleri, başka bir derleme taşındı. Doğru başvuru derlemeleri kullanarak kaya gibi sert bir gerekliliktir. Sanagerekirkullanımı:
/lib:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"
Özellikle makine maç ve çerçeve sürümü için hedef ayarlamak.
Nasıl bir veritabanı TSQL kullanarak t...
Pano vim kullanarak kopyalamak için?...
Nasıl dava sınıfı scala bir Numaraland...
Nasıl sayfa yük üzerinde form giriş me...
En iyi uygulama NSLocalizedString kull...