VS2017 bilan csproj fayllarini qanday yangilash kerak

VS2017 shu paytgacha yangi .csproj formatiga bir necha project.json / .xproj asoslangan loyihalarni to'g'ri aylantirdi.

Bundan oldin faqat .csproj formatini oldindan ishlatib oldingi .csproj loyihalaridan foydalanmoqchiman (ya'ni ular faqat dnx/dotnet CLI bilan ishlamagan) .

It seems that even if a project would still only target .NET Framework, the benefits of and an easily editable .csproj file seem worth the (hopefully not too great) trouble.

Buni to'g'ridan-to'g'ri Visual Studio 2017 bilan qilish mumkinmi?

Aks holda, qanday qo'lda qadamlar kerak bo'ladi?

24
Core bo'lmagan loyihalar uchun .csproj dan foydalanishni cheklashlar sifatida bu erda ko'rsatilgan
qo'shib qo'ydi muallif Panagiotis Kanavos, manba
Core bo'lmagan loyihalar uchun .csproj dan foydalanishni cheklashlar sifatida bu erda ko'rsatilgan
qo'shib qo'ydi muallif Panagiotis Kanavos, manba
Ha, Core bo'lmagan loyihalar uchun yangi csproj faylini ishlatish mumkin, ammo kerak emas. Quyidagi javobni qarang.
qo'shib qo'ydi muallif Mark, manba
Ha, Core bo'lmagan loyihalar uchun yangi csproj faylini ishlatish mumkin, ammo kerak emas. Quyidagi javobni qarang.
qo'shib qo'ydi muallif Mark, manba

6 javoblar

.csproj faylini yangilashingizga hojat yo'qligini aniqlash uchun men javobni tahrir qilmoqdaman. Drew quyidagi fikrlarni aytib o'tdiki, buning foydasi bor. Biroq, VS2017 klassik csproj fayl bilan ishlashni davom etadi. Bundan tashqari, VS2017-da siz uchun yangilanishni amalga oshiradigan hech narsa yo'q. Agar siz yangi formatdan foydalanishni istasangiz, pastda yurish kerak.

.csproj faylini yangi Visual Studio 2017 formatiga yangilash sodda sinf kutubxonalari yoki konsol loyihalari uchun oson.

Agar siz versiya boshqaruvidan foydalanmayotgan bo'lsangiz, csproj faylini va Properties/AssemblyInfo.cs faylini zaxiralashni unutmang va packages.config . Yangi csproj fayli yaxshi. Ko'pgina loyihalarda men o'nlab yoki bir nechta kod satrlarini almashtirdim. Biroq, Visual Studio 2017 avvalgi csproj fayllarini qo'llab-quvvatlashda davom etayotganligi sababli, bu muddatidan oldin optimallashtirish mumkin. Agar o'nlab loyihalarni o'z ichiga olgan yechimingiz bor bo'lsa, ko'pgina NuGet paketlari va csproj ga biron-bir moslashtirish sizga keraksiz ishni bajarish loyihasini olib boradi.

.Csproj faylingizning barcha mazmunini mos kod bilan quyidagi tarzda o'zgartiring.

Sinf kutubxonasi


  
    net462
  

Konsol ilovasi


  
    Exe
    net462
  

Change the attribute to the .NET version you require such as net452, net46, net461 etc.

Odatiy bo'lib, loyiha jildingizdagi barcha kod derleyici tomonidan olinadi. Agar sizda loyiha jildingizdan tashqarida kod mavjud bo'lsa, uni avvalgi Visual Studio va csproj versiyalarida xuddi shunday qilishingiz kerak.

Yuqoridagi o'zgarishlarni hal qilsangiz, sizning hal qilishingizni Visual Studio-2017da yuklashingiz kerak. Bu erda eng asosiy loyihalar yaratilishi kerak. Aks holda, etishmayotgan yig'ilish yoki loyiha zikrlarini kiritishingiz kerak bo'ladi. Ariza qo'shish Visual Studio oldingi versiyalarida shunga o'xshash. Solution Explorer-dagi loyihangizni tanlang, Aloqada -ni o'ng tugmasini bosing va Add Reference -ni tanlang. Siz etishmayotgan har qanday Framework yoki loyiha zikrlarini qo'shing.

O'zingizning yechimingizni/loyihangizni qayta tiklashga harakat qiling. Ikki nusxadagi atributlar haqida xat olishingiz mumkin. Bu xato, chunki AssemblyInfo.cs da ilgari belgilangan atributlar csproj faylga ko'chirilgan. Xususiyatlar papkasida joylashgan AssemblyInfo.cs faylini o'chirib tashlash, ushbu xatoliklarni bartaraf etish kerak. AssemblyInfo.cs faylini yo'q qilishdan avval, siz aniqlagan barcha ma'lumotlarni ko'chirishingiz kerak. Aksariyat xususiyatlar loyiha faylingizning paketli ma'lumot qismiga kiritilishi mumkin. Loyiha nomini o'ng tugmasini bosib, Paket sahifasini tanlang va undan oldin AssemblyInfo.cs faylida aniqlangan ma'lumotlarni kiriting. Bu montaj versiyasi, muallif, mualliflik huquqi va h.k. kabi narsalarni o'z ichiga oladi.

Quyida avvalgi qadamni ko'rsatadigan ekran tasviridir.

enter image description here

Agar loyihangizda NuGet paketlarini ishlatayotgan bo'lsangiz, ularni yangi formatga ko'chirishingiz kerak. Visual Studio 2017 NuGet oldingi versiyasi csproj saytidagi arizalarga qo'shimcha ravishda loyihangizning ildizida joylashgan Packages.config nomli faylga asoslangan. NuGet paket referanslarınızı ko'chirish uchun, çözümünüzü o'ng tugmasini bosing va Nuget Paket menejeri tiklash. Yuqoridagi o'ng burchakka o'rnatilgandan so'ng, cheklarni bosing va NuGet Paket menejeri parametrlari yuklanadi. General -ni tanlang. Paket boshqaruvi ostida Standart paketni boshqarish formati parametrini PackageReference-ga o'zgartiring. Shu nuqtada NuGet paketlaringizni o'zingizning halingizga qaytarishingiz kerak bo'ladi. Barcha paketlarni loyihaning ildiz papkasida packages.config faylida topishingiz mumkin. Barcha paketlarni qayta qo'shganingizdan so'ng packages.config faylini o'chirib tashlashingiz mumkin.

23
qo'shib qo'ydi
Buning uchun juda minnatdormiz. Yangi loyihaning ba'zi afzalliklari: 1) NuGet bog'liqliklarini soddalashtirish (to'plamlar to'plami va paket menejeri konsoli yoki VSning NuGet paketlarini boshqarish uchun talab yo'q), 2) NuGet paketini aniqlash qobiliyati loyiha faylida bevosita, 3) .csproj faylini tushirish/qayta yuklashsiz o'zgartirish
qo'shib qo'ydi muallif Drew Noakes, manba
@DrewNoakes va shuningdek, .csproj faylini versiya boshqaruvi bilan boshqarish osonroqdir va birlashma vaqtida qo'lda tahrir qilish mumkin. Men ko'plab muvaffaqiyatli loyihalarda @kkip vositasini ishlatganman.
qo'shib qo'ydi muallif seangwright, manba

.csproj faylini yangilashingizga hojat yo'qligini aniqlash uchun men javobni tahrir qilmoqdaman. Drew quyidagi fikrlarni aytib o'tdiki, buning foydasi bor. Biroq, VS2017 klassik csproj fayl bilan ishlashni davom etadi. Bundan tashqari, VS2017-da siz uchun yangilanishni amalga oshiradigan hech narsa yo'q. Agar siz yangi formatdan foydalanishni istasangiz, pastda yurish kerak.

.csproj faylini yangi Visual Studio 2017 formatiga yangilash sodda sinf kutubxonalari yoki konsol loyihalari uchun oson.

Agar siz versiya boshqaruvidan foydalanmayotgan bo'lsangiz, csproj faylini va Properties/AssemblyInfo.cs faylini zaxiralashni unutmang va packages.config . Yangi csproj fayli yaxshi. Ko'pgina loyihalarda men o'nlab yoki bir nechta kod satrlarini almashtirdim. Biroq, Visual Studio 2017 avvalgi csproj fayllarini qo'llab-quvvatlashda davom etayotganligi sababli, bu muddatidan oldin optimallashtirish mumkin. Agar o'nlab loyihalarni o'z ichiga olgan yechimingiz bor bo'lsa, ko'pgina NuGet paketlari va csproj ga biron-bir moslashtirish sizga keraksiz ishni bajarish loyihasini olib boradi.

.Csproj faylingizning barcha mazmunini mos kod bilan quyidagi tarzda o'zgartiring.

Sinf kutubxonasi


  
    net462
  

Konsol ilovasi


  
    Exe
    net462
  

Change the attribute to the .NET version you require such as net452, net46, net461 etc.

Odatiy bo'lib, loyiha jildingizdagi barcha kod derleyici tomonidan olinadi. Agar sizda loyiha jildingizdan tashqarida kod mavjud bo'lsa, uni avvalgi Visual Studio va csproj versiyalarida xuddi shunday qilishingiz kerak.

Yuqoridagi o'zgarishlarni hal qilsangiz, sizning hal qilishingizni Visual Studio-2017da yuklashingiz kerak. Bu erda eng asosiy loyihalar yaratilishi kerak. Aks holda, etishmayotgan yig'ilish yoki loyiha zikrlarini kiritishingiz kerak bo'ladi. Ariza qo'shish Visual Studio oldingi versiyalarida shunga o'xshash. Solution Explorer-dagi loyihangizni tanlang, Aloqada -ni o'ng tugmasini bosing va Add Reference -ni tanlang. Siz etishmayotgan har qanday Framework yoki loyiha zikrlarini qo'shing.

O'zingizning yechimingizni/loyihangizni qayta tiklashga harakat qiling. Ikki nusxadagi atributlar haqida xat olishingiz mumkin. Bu xato, chunki AssemblyInfo.cs da ilgari belgilangan atributlar csproj faylga ko'chirilgan. Xususiyatlar papkasida joylashgan AssemblyInfo.cs faylini o'chirib tashlash, ushbu xatoliklarni bartaraf etish kerak. AssemblyInfo.cs faylini yo'q qilishdan avval, siz aniqlagan barcha ma'lumotlarni ko'chirishingiz kerak. Aksariyat xususiyatlar loyiha faylingizning paketli ma'lumot qismiga kiritilishi mumkin. Loyiha nomini o'ng tugmasini bosib, Paket sahifasini tanlang va undan oldin AssemblyInfo.cs faylida aniqlangan ma'lumotlarni kiriting. Bu montaj versiyasi, muallif, mualliflik huquqi va h.k. kabi narsalarni o'z ichiga oladi.

Quyida avvalgi qadamni ko'rsatadigan ekran tasviridir.

enter image description here

Agar loyihangizda NuGet paketlarini ishlatayotgan bo'lsangiz, ularni yangi formatga ko'chirishingiz kerak. Visual Studio 2017 NuGet oldingi versiyasi csproj saytidagi arizalarga qo'shimcha ravishda loyihangizning ildizida joylashgan Packages.config nomli faylga asoslangan. NuGet paket referanslarınızı ko'chirish uchun, çözümünüzü o'ng tugmasini bosing va Nuget Paket menejeri tiklash. Yuqoridagi o'ng burchakka o'rnatilgandan so'ng, cheklarni bosing va NuGet Paket menejeri parametrlari yuklanadi. General -ni tanlang. Paket boshqaruvi ostida Standart paketni boshqarish formati parametrini PackageReference-ga o'zgartiring. Shu nuqtada NuGet paketlaringizni o'zingizning halingizga qaytarishingiz kerak bo'ladi. Barcha paketlarni loyihaning ildiz papkasida packages.config faylida topishingiz mumkin. Barcha paketlarni qayta qo'shganingizdan so'ng packages.config faylini o'chirib tashlashingiz mumkin.

23
qo'shib qo'ydi
Buning uchun juda minnatdormiz. Yangi loyihaning ba'zi afzalliklari: 1) NuGet bog'liqliklarini soddalashtirish (to'plamlar to'plami va paket menejeri konsoli yoki VSning NuGet paketlarini boshqarish uchun talab yo'q), 2) NuGet paketini aniqlash qobiliyati loyiha faylida bevosita, 3) .csproj faylini tushirish/qayta yuklashsiz o'zgartirish
qo'shib qo'ydi muallif Drew Noakes, manba
@DrewNoakes va shuningdek, .csproj faylini versiya boshqaruvi bilan boshqarish osonroqdir va birlashma vaqtida qo'lda tahrir qilish mumkin. Men ko'plab muvaffaqiyatli loyihalarda @kkip vositasini ishlatganman.
qo'shib qo'ydi muallif seangwright, manba

I have created a tool for this that works with csproj files: https://github.com/hvanbakel/CsprojToVs2017

Siz uni faqat csprojda ishga tushirishingiz mumkin va u faylni o'zgartiradi va eski nusxasini yaratadi.

14
qo'shib qo'ydi
Bu asosiy CSProj fayllari uchun yaxshi ishlaydi.
qo'shib qo'ydi muallif Robert Bratton, manba

I have created a tool for this that works with csproj files: https://github.com/hvanbakel/CsprojToVs2017

Siz uni faqat csprojda ishga tushirishingiz mumkin va u faylni o'zgartiradi va eski nusxasini yaratadi.

14
qo'shib qo'ydi
Bu asosiy CSProj fayllari uchun yaxshi ishlaydi.
qo'shib qo'ydi muallif Robert Bratton, manba
2
qo'shib qo'ydi
Bu juda foydali, rahmat. Eslatma: aslida csproj formatini yangi .NET Core/dotnet SDK uslubiga yangilamaydi, balki eski kod packages.config arizalarini elementlariga o'zgartiradi mavjud csproj fayllaringizda. Bu aslida .NET Core ni talab qiladigan ko'plab loyihalar uchun kerak bo'lishi mumkin.
qo'shib qo'ydi muallif Drew Noakes, manba
2
qo'shib qo'ydi
Bu juda foydali, rahmat. Eslatma: aslida csproj formatini yangi .NET Core/dotnet SDK uslubiga yangilamaydi, balki eski kod packages.config arizalarini elementlariga o'zgartiradi mavjud csproj fayllaringizda. Bu aslida .NET Core ni talab qiladigan ko'plab loyihalar uchun kerak bo'lishi mumkin.
qo'shib qo'ydi muallif Drew Noakes, manba