Saya memiliki solusi dalam Visual Studio 2012 dengan proyek 170 C # di dalamnya. Saya perlu menargetkan ulang semua proyek dari .NET Framework 4.0 ke 4.5.2.
Saya lebih suka membiarkan Visual Studio menangani ini dengan masuk ke properti setiap proyek, mengubah kerangka kerja yang ditargetkan, dan membiarkan Visual Studio membuat perubahan yang diperlukan pada file .csproj.
Saya perhatikan bahwa perubahan ini termasuk menambahkan beberapa tag XML baru ke .csproj, bergantung pada beberapa atribut proyek saat ini.
Bagaimana saya bisa menargetkan ulang secara batch semua proyek 170 C # tanpa hanya menggunakan alat pengganti teks untuk mengganti nomor versi yang ditargetkan? Saya ingin Visual Studio membuat semua modifikasi dan penambahan tag yang diperlukan dan mengganti saja tidak akan mengizinkan hal itu terjadi.
sumber
Jawaban:
Dokumentasi MSDN " Panduan Migrasi ke .NET Framework 4.5 " dan " Cara Mengkonfigurasi Aplikasi untuk Mendukung .NET Framework 4 atau 4.5 " hanya membahas pengubahan proyek. Tidak ada detail tentang menerapkan perubahan ke seluruh solusi sekaligus, saya juga belum melihat fungsi di VS yang mendukungnya.
Namun, ada ekstensi (berperingkat baik) bernama Target Framework Migrator yang tersedia di galeri Visual Studio, yang mendukung peningkatan ke 4.5.2 (serta versi yang lebih baru **) dan sepertinya itu akan melakukan apa yang Anda inginkan. Kode sumber tersedia di GitHub , jika Anda tertarik.
Perhatikan bahwa kurangnya fitur tersebut mungkin disengaja (dan bukan hanya kelalaian). Saya hanya menebak-nebak, tapi mungkin MS hanya menghitung proyek yang membutuhkan Kerangka baru yang akan ditingkatkan. FWIW, jika Anda akhirnya memutakhirkan beberapa proyek yang dibagikan dengan solusi lain, solusi tersebut mungkin gagal dibangun sampai mereka juga ditingkatkan.
Karena itu, jika Anda berada di toko kecil dengan hanya satu (atau beberapa) solusi dan Anda ingin meningkatkan semuanya dalam sekali jalan, mungkin alat di atas akan bekerja untuk Anda.
Jika Anda tidak dapat membuatnya bekerja dengan versi .NET Framework yang lebih baru, periksa PR dan Masalah yang ada untuk perbaikan, tetapi Anda mungkin harus menerapkannya sendiri. Misalnya, seseorang memposting perbaikan untuk .NET Framework v 4.7.1 . Mudah-mudahan ini akan bergabung, tetapi saya tidak akan menahan napas.
Jika ada orang lain yang melihat kesalahan yang sama dengan Anas (di komentar), inilah masalah GitHub dari beberapa minggu yang lalu, dan masalah lain yang mungkin terkait dari 2017. Pertimbangkan untuk mengacungkan jempol dan menambahkan lebih banyak detail jika Anda mengalami masalah yang sama .
sumber
Untuk solusi .NET Framework, " Ganti dalam file " yang sederhana berhasil untuk saya:
misalnya : Dari .NET Framework 4.5.2 ke .NET Framework 4.7.2
Di file package.config , ganti semua
untuk
Di file * .csproj , ganti semua
untuk
sumber
Karena Target Framework Migrator rusak, saya menggulung pencarian / penggantian saya sendiri (menggunakan git bash, ini berfungsi dengan baik di windows); Pada dasarnya ini mengubah v4.6.x menjadi v4.7.2 , kemudian mengonversi kembali file ke menggunakan CRLF DOS yang terkenal:
sumber
Update-Package -ReInstall
melakukan keajaiban. Terima kasih!Saya telah membuat sendiri alat sederhana untuk memigrasi versi kerangka kerja target untuk seluruh solusi, karena Ekstensi Kerangka Kerja Migrator Target tidak mendukung Visual Studio 2017. Unduh alat dari repositori GitHub saya https://github.com/Xpitfire/TargetFrameworkMigrator
Saya tahu ini bukan cara terbaik untuk melakukannya, tetapi ini berhasil untuk saya dan mungkin juga akan membantu orang lain.
sumber
Migrator Kerangka Target cukup berguna. Secara default, ini muncul di v4.7. Namun, mudah untuk menambahkan dukungan untuk v4.7.1, v4.7.2 dan v4.8.
Temukan file Frameworks.xml di folder C: \ Users {username} \ AppData \ Local \ Microsoft \ VisualStudio \ dan edit dengan menambahkan versi framework berikut:
Setelah Anda memulai ulang studio visual, Anda akan melihat versi baru.
sumber
sumber