C#

2009-12-09 9 views
6

içinde taşınabilir (yüklemesiz) Windows uygulamaları oluşturma. Net 3.5 uygulamasına sahibim ve taşınabilir hale getirmek istiyorum. Bu basit ve mükemmel çalışır, .EXE + .DLL'leri bazı arkadaşlara gönderdim ve exe'yi .DLL'ler ve .ICO'yla (içinde kullandığım) aynı klasörde çalıştırırken amaçlandığı şekilde çalışır .C#

İstediğim şey basit: dll'leri, imajı ve ne isterse onunla birlikte kurulum yapmadan ve kurulum gerektirmeden ilgilenen tek bir EXE dosyası oluşturmak. (Aka taşınabilir)

Ben gerekirse, ben 3.5 kullanıyorum neden aslında, gerçekten emin değilim, herhangi 3,5 salt işlevini kullanmayan 2.0 .net için taşımayı düşünebilirsiniz

(i değilim her zaman programlamada yeni)

Herhangi bir ipucu, bağlantı veya bunun nasıl yapılacağına dair bir açıklama istiyorum. Çünkü gerçekten çok rahatsız edici .rar's'ı arkadaşlarıma gönderiyor ve bunların tümünü .exe arasında ayıklayıp çalıştırmasını söylüyor " garip dosyalar "dedikleri gibi (herkes, klasörlerdeki uzatma ekranına sahip değil, bu yüzden bir kabus)

(Ben StackOverflow'da arama yaptım ve ne sorduğumun cevabını veren herhangi bir soru bulamadım.) Ben bir fram tartışmasında sona erdi gibi bulduğu bir tane pencereler makineleri, dil seçtiği ve iyi cevapları eWork kullanım.) Eğer yürütülebilir tüm meclisleri birleştirmek için ILMerge kullanabilirsiniz

+0

Ben kolayca dağıtılabilir demek düşünüyorum. – Oded

+0

İnsanları konuşalım, tartışalım, bu soruya bir cevap (çok fazla insanın ilgisini çekebilir) çok az! Cevap vermek için yararlı olabilecek başka herhangi bir bilgi vermek için buradayım. – Marcelo

+3

@Oded - taşınabilir şimdi birden fazla anlama sahip bu kelimeler biridir onun certianly çapraz platformu anlamında kullanılmaktadır ancak şimdi sıklıkta (? Diğer) "bir USB stick çalışır veya yükleme olmadan eşdeğer" – Murph

cevap

10

. Simgenizin zaten gömülü bir kaynak olmasını beklerdim - ya da en azından bu şekilde oluşturmalısınız.

Hedefleme .NET 2.0, yalnızca .NET 2.0 yüklü olan makinelerde çalışacağı için uygulamayı daha yaygın bir şekilde taşınabilir hale getirecektir; ancak, 2.0 ve 3.5 dağıtımı için oranların nasıl göründüğünü bilmiyorum ve daha fazlası önemlisi, hedef kitlenizin hedef kitlenizden dağıtım oranları ile aynı olmayabilir.

+0

Teşekkür ederim! Simge hakkında, bunu nasıl yapacağımı bilmiyorum, ama anlayacağım. Beklemeye devam edeceğim, belki daha da iyi bir şey gelir! – Marcelo

2

Ayrıca Uygulamalarınızı Sanallaştırmak için Xenocode'u da kullanabilirsiniz. NET için özellikle Xenocode Postbuild.

3

Sen kaynaklar veya gömülü dosyaları olarak uygulamanın gerektirdiği her veri (montajları, simgeler, vb) ekleyebilir.

Kaynak düzenleyiciyi kullanın ya da ellerinizi daha kirletmek istiyorsanız, herhangi bir dosyayı çözüm gezgininde projeye sağ tıklayıp "varolan öğeyi ekle" yi yaparak dosyaya özellik ekleyerek herhangi bir dosya ekleyebilirsiniz. ve Build Aciton'u "Gömülü Kaynak" olarak ayarlama. Simgeler gibi

Kaynaklar sadece doğrudan kullanılabilir -

Veri dosyaları dan yüklemek için bir akım elde etmek için Application.GetManifestResource (ve ilgili yöntemler) kullanılarak yüklenebilir DrawIcon (Properties.Resources.MyIcon) olduğu gibi. Örneğin, bir montaj için, kaynağınız için doğrudan manifest kaynak akışından Assembly.Load() kullanabilirsiniz. taşınabilir değil (farklı işletim sistemleri ve/veya donanım mimarileri üzerinde çalışan taşınabilir araçları) -

+0

P.S. Bunun avantajı, veri dosyalarınızı ve montajlarınızı .exe'nize gömmek çok kolaydır, bakımı çok kolaydır, tüm dosyalar otomatik olarak Çözüm Gezgini'nde listelenir ve herhangi bir 3. parti araç veya işlem sonrası adım gerektirmez. Bunu yapmak için - hepsi yerleşik VS/C# /. net2.0 işlevselliğine dayanır. –