Aracılığıyla paylaş


Eski .NET Yükseltme Yardımcısı'nı kullanma

Bu makalede.NET Yükseltme Yardımcısı komut satırı arabirimi (CLI) aracının eski sürümünü yüklemeyi ve çalıştırmayı öğreneceksiniz. Sürüm 0.5.2'den başlayarak, .NET Yükseltme Yardımcısı CLI aracının kod tabanı Visual Studio uzantısında yeniden temel alınmıştı. Başka bir deyişle, eski sürüm olarak adlandırılan 0.5.2'den önceki sürüm ve geçerli sürüm olan 0.5.2+ sürümü olmak üzere iki farklı CLI aracı vardır.

Eski sürüm, çözümle komutu veya çözüm düzeyi yükseltmeleri gibi yeni sürümde henüz kullanılamayan bazı işlevlere sahiptir, ancak yeni (0.5.2+) sürümde yeni iyileştirmeler yoktur. Bu nedenle, geçerli sürüm yetenek ve kapsam artıncaya kadar kullanmak isteyebilirsiniz.

İpucu

Aracın eski sürümü çözüm dosyalarını yükseltebilir.

Eski sürümü yükleme

Aracın eski sürümü, sürümünü belirtmeniz 0.4.421302dışında geçerli sürümle aynı şekilde yüklenir:

dotnet tool install upgrade-assistant -g --version 0.4.421302

Önemli

Ek NuGet akışı kaynakları yapılandırdıysanız bu aracı yükleme işlemi başarısız olabilir. --ignore-failed-sources Bu hataları hatalar yerine uyarı olarak işlemek için parametresini kullanın:

dotnet tool install upgrade-assistant -g --ignore-failed-sources --version 0.4.421302

Uygulamanızı analiz etme

Aracın eski sürümü, uygulamanızı yükseltmenin basitleştirilmiş bir kuru çalıştırmasını gerçekleştiren bir analiz modu içerir. Yükseltme başlatılmadan önce hangi değişikliklerin gerekebileceğine ilişkin içgörüler sağlayabilir. Bir terminal açın ve hedef projenin veya çözümün bulunduğu klasöre gidin. upgrade-assistant analyze Yükselttiğiniz projenin veya çözümün adını geçirerek komutunu çalıştırın.

Örneğin, .NET Framework WPF uygulamasıyla analiz modunu çalıştırdıktan sonra aşağıdaki çıktıyı bulabilirsiniz:

> upgrade-assistant analyze .\WebSiteRatings.sln

[15:39:00 INF] Loaded 9 extensions
[15:39:02 INF] Using MSBuild from C:\Program Files\dotnet\sdk\7.0.201\
[15:39:02 INF] Using Visual Studio install from C:\Program Files\Microsoft Visual Studio\2022\Preview [v17]
[15:39:05 INF] Writing output to C:\code\migration\AnalysisReport.sarif
[15:39:06 INF] Recommending Windows TFM net7.0-windows for project WebSiteRatings.csproj because the project either has Windows-specific dependencies or builds to a WinExe
[15:39:06 INF] Marking assembly reference System.Configuration for removal based on package mapping configuration System.Configuration
[15:39:06 INF] Adding package System.Configuration.ConfigurationManager based on package mapping configuration System.Configuration
[15:39:08 INF] Package EntityFramework, Version=6.2.0 does not support the target(s) net7.0-windows but a newer version (6.4.4) does.
[15:39:09 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.4.410601) needs to be added
[15:39:10 INF] Adding Microsoft.Windows.Compatibility 7.0.0 helps with speeding up the upgrade process for Windows-based APIs
[15:39:13 INF] Recommending Windows TFM net7.0-windows for project StarVoteControl.csproj because the project either has Windows-specific dependencies or builds to a WinExe
[15:39:13 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.4.410601) needs to be added
[15:39:13 INF] Adding Microsoft.Windows.Compatibility 7.0.0 helps with speeding up the upgrade process for Windows-based APIs
[15:39:13 INF] Running analyzers on WebSiteRatings
[15:39:14 INF] Identified 0 diagnostics in project WebSiteRatings
[15:39:14 INF] Running analyzers on StarVoteControl
[15:39:15 INF] Identified 0 diagnostics in project StarVoteControl
[15:39:15 INF] Analysis Complete, the report is available at C:\code\migration\AnalysisReport.sarif

Çıktıda oldukça fazla iç tanılama bilgisi vardır, ancak bazı bilgiler yararlıdır. Analiz modunun yükseltme sırasında projenin hedef çerçeve adı (TFM) yerine net7.0olarak ayarlandığını gösterdiğine net7.0-windows dikkat edin. Çözüm tarafından başvuruda bulunulan projeler yalnızca Windows teknolojisi olan WPF projeleri olduğundan bu öneri yapılır. Windows'a özgü bir kitaplık veya kod kullanmadığı sürece konsol uygulaması büyük olasılıkla doğrudan TFM'ye net7.0yükseltilir.

Upgrade-assistant'ı çalıştırma

Bir terminal açın ve hedef projenin veya çözümün bulunduğu klasöre gidin. upgrade-assistant upgrade Yükselttiğiniz projenin veya çözümün adını geçirerek komutunu çalıştırın.

Araç çalıştığında, projeyi yükseltmek için gerçekleştirdiği adımların listesini görüntüler. Her adım tamamlandıktan sonra araç, kullanıcının bir sonraki adımı uygulamasına veya atmasına olanak sağlayan bir dizi numaralandırılmış komut sağlar. Aşağıdakiler gibi başka seçenekler de sağlayabilir:

  • Adım hakkında daha fazla bilgi edinin.
  • Projeleri değiştirme.
  • Günlük ayarlarını yapın.
  • Yükseltmeyi durdurun ve çıkın.

Sayı seçmeden Enter tuşuna basıldığında listedeki ilk öğe seçilir.

Her adım başlatılırken, adımı uygularsanız araç ne olacağını düşündüğü hakkında bilgi sağlayabilir.

Çözümü yükseltme

Birden çok proje içeren bir çözümü yükselttiğinizde, çözümdeki hangi projenin giriş noktası olduğunu seçmeniz gerekir. Giriş noktası projesine bağlı olarak, hangi projelerin yükseltileceğini ve hangi sırada yükseltileceğini belirlemek için bir bağımlılık grafiği oluşturulur. Çözüm bağımlılık grafiğinin parçası olmayan projeler içeriyorsa, bunlar yoksayılır ve bu projeleri ayrı olarak yükseltmeniz gerekir. Bağımlılıklar önce yükseltilir, sonra giriş noktası projesi.

Sonraki adım, hangi projenin yükseltileceğini seçmektir. Aşağıdaki kod parçacığına benzer bir çıktı görmeniz gerekir:

Upgrade Steps

1. [Next step] Select an entrypoint
2. Select project to upgrade

Choose a command:
   1. Apply next step (Select an entrypoint)
   2. Skip next step (Select an entrypoint)
   3. See more step details
   4. Configure logging
   5. Exit

İpucu

Aracın yükseltemeyebileceği bir şey hakkında bilgi içerebileceği için her adımın çıkışına dikkat edin. Uygulamanızın karmaşıklık düzeyine bağlı olarak, araç tamamlandıktan sonra daha fazla yükseltme işiniz olabilir.

Projeyi yükseltme

Bir proje seçildikten sonra, yükseltme adımlarının listesi görüntülenir. İlk adım seçilir ve bu da projeyi yedeklemektir. Adım listesi aşağıdaki kod parçacığına benzer:

[15:50:50 INF] Initializing upgrade step Back up project

Upgrade Steps

Entrypoint: C:\code\migration\WebSiteRatings\WebSiteRatings.csproj
Current Project: C:\code\migration\WebSiteRatings\WebSiteRatings.csproj

1. [Next step] Back up project
2. Convert project file to SDK style
3. Clean up NuGet package references
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
4. Update TFM
5. Update NuGet Packages
    a. Duplicate reference analyzer
    b. Package map reference analyzer
    c. Target compatibility reference analyzer
    d. Upgrade assistant reference analyzer
    e. Windows Compatibility Pack Analyzer
    f. MyDotAnalyzer reference analyzer
    g. Newtonsoft.Json reference analyzer
    h. Windows App SDK package analysis
    i. Transitive reference analyzer
6. Add template files
7. Update WCF service to CoreWCF (Preview)
8. Upgrade app config files
    a. Convert Application Settings
    b. Convert Connection Strings
    c. Disable unsupported configuration sections
9. Update source code
    a. Apply fix for UA0002: Types should be upgraded
    b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist
10. Move to next project

Choose a command:
   1. Apply next step (Back up project)
   2. Skip next step (Back up project)
   3. See more step details
   4. Select different project
   5. Configure logging
   6. Exit

Her adım önce ne yapacağını ayrıntılarıyla açıklar ve ardından bunu yapmanızı ister. Uygulanmayan herhangi bir adım, araç adıma ulaştığında atlanır. Örneğin, araç 7 işliyorsa . WCF hizmetini CoreWCF (Önizleme) olarak güncelleştirin, ancak uygulamanız bir WCF hizmeti tanımlamaz, atlanır ve 8. adım işlenir. Buna karşılık, 8. adım geçerli değilse, bu da atlanır. Araç geçerli olan bir sonraki adımı bulmaya çalışırken birçok adımın atlandığını görebilirsiniz.

Son adımlar

Projelerinizi yükselttikte derlemeniz ve test etmeniz gerekir. Büyük olasılıkla yükseltmeyi tamamlamak için yapılacak daha fazla iş vardır. Uygulamanızın .NET Framework sürümünde projenizin aslında kullanmadıkları kitaplık başvuruları bulunabilir ve bunlar taşınmış olabilir. Her başvuruya çözümleyin ve gerekli olup olmadığını belirleyin. Araç, nuget paket başvurularını da yanlış sürüme eklemiş veya yükseltmiş olabilir.

Son olarak, uygulamanızı modernleştirmenin yollarını arayın. Örnekler için bkz . .NET Framework'ten .NET'e yükselttikten sonra modernleştirmeler