2016-03-31 20 views
0

CLI uygulaması olan bir projem ve CLI uygulamasının bağımlılığı olan bir DLL var.Bağımlılık içerik dosyası dağıtımda yer almıyor

DLL projesi, P/Invoke yöntemiyle kullanılan yerel bir DLL dosyası içerir. Bu DLL, İçerik olarak işaretlenmiştir. Projemi oluşturduğumda, DLL, çıkış dizinine kopyalanır ve benim uygulama düzgün çalışır.

Bir ClickOnce dağıtımı yayınladığımda. Sonuçta ortaya çıkan pakette DLL bulunmuyor ve uygulamam düzgün çalışmayabilir.

Benzer sorulara verilen yanıtlar, bu dosyayı zaten sahip olduğum ve sorunun hiçbir etkisi olmayan İçeriği olarak ayarlamanızı önerir. Diğer yanıtlar, dosyanın yayınlama seçeneklerinin Uygulama Dosyaları bölümünde yer aldığından emin olmayı önerir, ancak dosya orada listelenmez.

+0

Dosya Uygulama Dosyaları bölümünde listelenmiyorsa, bu sorun olur. "Tüm dosyaları göster" i tıklatarak deneyin ve listeden bulabileceğinize bakın - eğer yapabiliyorsanız, yayınlama durumunu * include * olarak değiştirin, indirme grubu * gerekli * ve hash to * include. * –

+0

@MatthewWatson " Tüm dosyaları göster "sadece .pdb' dosyalarını listeler. –

cevap

0

Why doesn't ClickOnce in Visual Studio deploy content files from dependent assemblies? bulunamadı ve önerilen çözümleri test etti. Hiçbiri benim için işe yaramadı.

Daha sonra, davranış Click-once publish addtional files stopped with VS 2012 okuduktan sonra bir Visual Studio güncelleştirmesinde büyük olasılıkla bozuk olduğunu anladım.

Sonuçta, benim için işe yarayan tek şey DLL'yi ana CLI uygulamasına eklemekti. Hangisi çok sinir bozucu.

+0

Yönetilmeyen DLL'leri kullanan ve yaptığınız gibi projeye eklediğimizde dosyaları otomatik olarak yükleyen bir dizi ClickOnce uygulamasına sahibiz. Hepsi iyi çalışıyorlar (VS2015 kullanıyoruz, ama aynı zamanda VS2012 ve VS2013 ile de çalışıyor), bu yüzden sizin için neden çalışmadığından emin değilim ... –

+0

@MatthewWatson Dosya eklendiyse sadece iyi çalışıyor yayınlanan proje. Dosya başvurulan bağımlılığa eklendiğinde çalışmıyor. –

+0

Oh! Üzgünüm, bu kısmı yanlış anladım. Öyleyse böyle yapmamız gerekiyor: DLL'i yaptığınız gibi, açık bir şekilde ClickOnce uygulamasına eklememiz gerekiyor. –

İlgili konular