2016-07-22 14 views
6

Bir dizi Paylaşılan Projeler oluşturdum ve bunların umduğum ve beklediğim gibi tüm farklı proje türleri arasında paylaşılıp paylaşılamayacağını test ediyorum. Şimdiye kadar hepsini (bazen küçük bir çözümle) yönetmiştim, ancak bunu gerçekten kullanışlı olacak bir .NET Çekirdek Sınıf Kitaplığı ile nasıl yapacağımı anlayamıyorum.Bir .NET Çekirdek Sınıf Kitaplığı'nda Visual Studio Paylaşılan Projesine nasıl başvuruda bulunabilirim

Visual Studio 2015 aracılığıyla yapamadığım için, bunu yapmak için bir yol bilen var mı? Belki de referansı doğrudan Sınıf Kitaplığı için project.json dosyasına yazarak?

DÜZENLEME: Visual Studio 2017 RC'den itibaren Paylaşılan Projeler, .NET Core projeleriyle düzgün bir şekilde çalışır.

cevap

5

Visual Studio 2017 RC'den, Paylaşılan Projeler de .NET Core platformunda düzgün çalışır.

+0

Sanırım bu, kişinin "düzgün" tanımına bağlı. Paylaşılan projeye başvuran bir birim testi ve iki test projesi, bir .NETCoreApp1.0 ve bir .NET Framework 4.6.2 içeren projeyi paylaştım. Paylaşılan sınama yalnızca .NET Framework'te görülebilir. Aynı şey bir .NETCoreApp1.1 ile de geçerlidir. –

+1

Her zaman Paylaşılan Projelerimi bir dll'de, örneğin bir .NET Core 1.1 sınıf kitaplığında veya bir .NET Framework sınıf kitaplığında paketliyorum. Sonra test projem için bu dll referans.Testlerin kendilerinin kütüphanelerin belirli sürümlerine bağlı olma eğilimi göz önüne alındığında, aslında iki kütüphane arasında bir testi paylaşmayı denemedim. Her neyse, bulgularınızı yerleşik raporlama aracını kullanarak Microsoft'a rapor etmeyi umuyoruz - daha önce bildirdiğim en son sürümde bir sorunu çözdüler, Visual Studio kullanarak bir Paylaşılan Proje başvurusunu kaldıramazsınız. bunun yerine proje dosyasında) – Arwin

3

Bu mümkün değil gibi görünüyor - Bugün nasıl yapılacağını bulmaya çalışıyorum! Ben buldum iyi bu SO soru geliyor:

How can I use xproj (asp.net/dotnet core project) with shproj (shared project)?

Ne ondan alıyorum ben NET45 doğrudan/46 sınıf kitaplıkları başvurulan ancak edilebilir Paylaşılan Projeleri yaratabilmenizdir yukarıda benim paylaşılan proje "TesterShared" denir örnekte ve Görsel olarak

"buildOptions": { 
    "compile": { 
    "include": [ 
     "../../TesterShared/**/*.cs" 
    ] 
    } 
} 

- aşağıdaki "buildOptions" ekleyerek, bir project.json tabanlı geçici çözümü kullanarak .NET Çekirdek projelerine çekti gerekecektir Studio, çözümün kökünde, .NET Core projelerinin aksine bunu yarattı. bir "src" klasöründe oluşturur (bu nedenle çift "../" üst yol navigasyonu).

+0

Bu işe yarıyorsa, şu an için yaşayabileceğim bir şey! O zaman umarım bir sonraki Visual Studio güncellemesi bunu düzeltecektir. – Arwin

+1

Umarım öyle olur! Project.json görünüşte farklı bir .csproj dosyasıyla değiştirilmekte olduğundan, belki bunu yaparlar. Bu yaklaşımı kullanıyorum, bunun iyi çalıştığını biliyorum ama bazı sınırlamalar var. Paylaşılan projeye bir ".sqlite" veritabanı dosyası eklemek istedim ve bununla ilgili sorunlar yaşadım (neredeyse "copyToOutput" seçenekleri var) istediğimi elde et, ama tam olarak değil). Ayrıca, paylaşılan projedeki dosyaları düzenlerseniz, .NET Core projenizin yeniden oluşturulmasını zorlamanız gerekir; paylaşılan projedeki değişikliklerin yeniden oluşturulmasını gerektirmediğini fark etmez. –

+0

Ah, bunlar gerçekten bazı sinir bozucu sınırlamalar. Dolayısıyla, temelde Visual Studio, Paylaşılan Projenin bağlantılı olduğunu bilmez, ancak en azından bunu derler. SQLLite olayına gelince, çoğunlukla Müşteriye özel olanları düşünüyorum. Paylaşılan Projelerimde sıfır bağımlılıklara sahip olmaya çalışıyorum ve bunlar, kurucuya enjekte edilebilecek harici her şey için arabirimleri tanımlamaları gerekir. Cevabınızı kabul edeceğim, tekrar teşekkürler. – Arwin

İlgili konular