Bagikan melalui


ASP.NET Penyebaran Web menggunakan Visual Studio: Mempersiapkan Penyebaran Database

Unduh Proyek Starter

Seri tutorial ini menunjukkan kepada Anda cara menyebarkan (menerbitkan) aplikasi web ASP.NET ke Azure App Service Web Apps atau ke penyedia hosting pihak ketiga, dengan menggunakan Visual Studio 2012 atau Visual Studio 2010. Untuk informasi tentang seri ini, lihat tutorial pertama dalam seri ini.

Gambaran Umum

Tutorial ini menunjukkan cara menyiapkan proyek untuk penyebaran database. Struktur database dan beberapa (tidak semua) data dalam dua database aplikasi harus disebarkan untuk menguji, penahapan, dan lingkungan produksi.

Biasanya, saat Anda mengembangkan aplikasi, Anda memasukkan data pengujian ke dalam database yang tidak ingin Anda sebarkan ke situs langsung. Namun, Anda mungkin juga memiliki beberapa data produksi yang ingin Anda sebarkan. Dalam tutorial ini Anda akan mengonfigurasi proyek Contoso University dan menyiapkan skrip SQL sehingga data yang benar disertakan saat Anda menyebarkan.

Pengingat: Jika Anda mendapatkan pesan kesalahan atau sesuatu tidak berfungsi saat Anda melalui tutorial, pastikan untuk memeriksa halaman pemecahan masalah.

LocalDB SQL Server Express

Aplikasi sampel menggunakan SQL Server Express LocalDB. SQL Server Express adalah edisi gratis SQL Server. Ini umumnya digunakan selama pengembangan karena didasarkan pada mesin database yang sama dengan versi lengkap SQL Server. Anda dapat menguji dengan SQL Server Express dan yakinlah bahwa aplikasi akan bertingkah sama dalam produksi, dengan beberapa pengecualian untuk fitur yang bervariasi antara SQL Server Editions.

LocalDB adalah mode eksekusi khusus SQL Server Express yang memungkinkan Anda bekerja dengan database sebagai file .mdf. Biasanya, file database LocalDB disimpan di folder App_Data proyek web. Fitur instans pengguna di SQL Server Express juga memungkinkan Anda untuk bekerja dengan file .mdf, tetapi fitur instans pengguna tidak digunakan lagi; oleh karena itu, LocalDB disarankan untuk bekerja dengan file .mdf.

Biasanya SQL Server Express tidak digunakan untuk aplikasi web produksi. LocalDB khususnya tidak disarankan untuk penggunaan produksi dengan aplikasi web karena tidak dirancang untuk bekerja dengan IIS.

Di Visual Studio 2012, LocalDB diinstal secara default dengan Visual Studio. Di Visual Studio 2010 dan versi yang lebih lama, SQL Server Express (tanpa LocalDB) diinstal secara default dengan Visual Studio; itulah sebabnya Anda menginstalnya sebagai salah satu prasyarat dalam tutorial pertama dalam seri ini.

Untuk informasi selengkapnya tentang edisi SQL Server, termasuk LocalDB, lihat sumber daya berikut bekerja dengan database SQL Server.

Kerangka Kerja Entitas dan Penyedia Universal

Untuk akses database, aplikasi Contoso University memerlukan perangkat lunak berikut yang harus disebarkan dengan aplikasi karena tidak termasuk dalam .NET Framework:

Karena perangkat lunak ini termasuk dalam paket NuGet, proyek sudah disiapkan sehingga rakitan yang diperlukan disebarkan dengan proyek. (Tautan menunjuk ke versi paket ini saat ini, yang mungkin lebih baru dari apa yang diinstal dalam proyek pemula yang Anda unduh untuk tutorial ini.)

Jika Anda menyebarkan ke penyedia hosting pihak ketiga alih-alih Azure, pastikan Anda menggunakan Entity Framework 5.0 atau yang lebih baru. Versi Migrasi Pertama Kode yang lebih lama memerlukan Kepercayaan Penuh, dan sebagian besar penyedia hosting akan menjalankan aplikasi Anda di Medium Trust. Untuk informasi selengkapnya tentang Medium Trust, lihat tutorial Menyebarkan ke IIS sebagai Lingkungan Pengujian .

Mengonfigurasi Migrasi Pertama Kode untuk penyebaran database aplikasi

Database aplikasi Contoso University dikelola oleh Code First, dan Anda akan menyebarkannya dengan menggunakan Code First Migrations. Untuk gambaran umum penyebaran database dengan menggunakan Migrasi Pertama Kode, lihat tutorial pertama dalam seri ini.

Saat Anda menyebarkan database aplikasi, biasanya Anda tidak hanya menyebarkan database pengembangan Anda dengan semua data di dalamnya ke produksi, karena banyak data di dalamnya mungkin hanya ada untuk tujuan pengujian. Misalnya, nama siswa dalam database pengujian bersifat fiktif. Di sisi lain, Anda sering tidak dapat menyebarkan hanya struktur database tanpa data di dalamnya sama sekali. Beberapa data dalam database pengujian Anda mungkin data nyata dan harus ada ketika pengguna mulai menggunakan aplikasi. Misalnya, database Anda mungkin memiliki tabel yang berisi nilai nilai yang valid atau nama departemen nyata.

Untuk mensimulasikan skenario umum ini, Anda akan mengonfigurasi metode Migrasi Seed Pertama Kode yang disisipkan ke dalam database hanya data yang ingin Anda berada di sana dalam produksi. Metode ini Seed tidak boleh menyisipkan data pengujian karena akan berjalan dalam produksi setelah Code First membuat database dalam produksi.

Dalam versi Code First yang lebih lama sebelum Migrasi dirilis, biasanya Seed metode untuk menyisipkan data pengujian juga, karena dengan setiap perubahan model selama pengembangan database harus dihapus sepenuhnya dan dibuat ulang dari awal. Dengan Migrasi Pertama Kode, data pengujian dipertahankan setelah perubahan database, jadi termasuk data pengujian dalam Seed metode ini tidak diperlukan. Proyek yang Anda unduh menggunakan metode termasuk semua data dalam Seed metode kelas penginisialisasi. Dalam tutorial ini Anda akan menonaktifkan kelas penginisialisasi tersebut dan mengaktifkan Migrasi. Kemudian Anda akan memperbarui Seed metode di kelas konfigurasi Migrasi sehingga hanya menyisipkan data yang ingin Anda sisipkan dalam produksi.

Diagram berikut mengilustrasikan skema database aplikasi:

School_database_diagram

Untuk tutorial ini, Anda akan berasumsi bahwa Student tabel dan Enrollment harus kosong ketika situs pertama kali disebarkan. Tabel lain berisi data yang harus dimuat sebelumnya saat aplikasi ditayangkan.

Menonaktifkan penginisialisasi

Karena Anda akan menggunakan Migrasi Pertama Kode, Anda tidak perlu menggunakan penginisialisasi DropCreateDatabaseIfModelChanges Kode Pertama. Kode untuk penginisialisasi ini ada di file SchoolInitializer.cs dalam proyek ContosoUniversity.DAL. Pengaturan dalam appSettings elemen file Web.config menyebabkan penginisialisasi ini berjalan setiap kali aplikasi mencoba mengakses database untuk pertama kalinya:

<appSettings>
  <add key="Environment" value="Dev" />
  <add key="DatabaseInitializerForType ContosoUniversity.DAL.SchoolContext, ContosoUniversity.DAL" value="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity.DAL" />
</appSettings>

Buka file Web.config aplikasi dan hapus atau komentari add elemen yang menentukan kelas penginisialisasi Kode Pertama. Elemen appSettings sekarang terlihat seperti ini:

<appSettings>
  <add key="Environment" value="Dev" />
</appSettings>

Catatan

Cara lain untuk menentukan kelas penginisialisasi adalah melakukannya dengan memanggil Database.SetInitializer dalam Application_Start metode dalam file Global.asax . Jika Anda mengaktifkan Migrasi dalam proyek yang menggunakan metode tersebut untuk menentukan penginisialisasi, hapus baris kode tersebut.

Catatan

Jika Anda menggunakan Visual Studio 2013, tambahkan langkah-langkah berikut antara langkah 2 dan 3: (a) Di PMC masukkan "update-package entityframework -version 6.1.1" untuk mendapatkan versi EF saat ini. Kemudian (b) buat proyek untuk mendapatkan daftar kesalahan build, dan perbaiki. Hapus menggunakan pernyataan untuk namespace yang sudah tidak ada lagi, klik kanan dan klik Atasi untuk menambahkan menggunakan pernyataan di mana diperlukan, dan ubah kemunculan System.Data.EntityState ke System.Data.Entity.EntityState.

Aktifkan Migrasi Pertama Kode

  1. Pastikan bahwa proyek ContosoUniversity (bukan ContosoUniversity.DAL) ditetapkan sebagai proyek startup. Di Penjelajah Solusi, klik kanan proyek ContosoUniversity dan pilih Atur sebagai Proyek Startup. Migrasi Pertama Kode akan terlihat di proyek startup untuk menemukan string koneksi database.

  2. Dari menu Alat , pilih NuGet Package Manager>Package Manager Console.

    Selecting_Package_Manager_Console

  3. Di bagian atas jendela Konsol Manajer Paket pilih ContosoUniversity.DAL sebagai proyek default lalu pada PM> perintah masukkan "enable-migrations".

    perintah enable-migrations

    (Jika Anda mendapatkan kesalahan yang mengatakan perintah enable-migrations tidak dikenali, masukkan perintah update-package EntityFramework -Instal ulang dan coba lagi.)

    Perintah ini membuat folder Migrasi di proyek ContosoUniversity.DAL, dan dimasukkan ke dalam folder tersebut dua file: file Configuration.cs yang dapat Anda gunakan untuk mengonfigurasi Migrasi, dan file InitialCreate.cs untuk migrasi pertama yang membuat database.

    Folder migrasi

    Anda memilih proyek DAL di daftar drop-down Proyek defaultkonsol Manajer Paket karena enable-migrations perintah harus dijalankan dalam proyek yang berisi kelas konteks Kode Pertama. Ketika kelas tersebut berada dalam proyek pustaka kelas, Migrasi Pertama Kode mencari string koneksi database dalam proyek startup untuk solusi tersebut. Dalam solusi ContosoUniversity, proyek web telah ditetapkan sebagai proyek startup. Jika Anda tidak ingin menunjuk proyek yang memiliki string koneksi sebagai proyek startup di Visual Studio, Anda dapat menentukan proyek startup di perintah PowerShell. Untuk melihat sintaks perintah, masukkan perintah get-help enable-migrations.

    Perintah enable-migrations secara otomatis membuat migrasi pertama karena database sudah ada. Alternatifnya adalah meminta Migrasi membuat database. Untuk melakukannya, gunakan Server Explorer atau SQL Server Object Explorer untuk menghapus database ContosoUniversity sebelum Anda mengaktifkan Migrasi. Setelah Anda mengaktifkan migrasi, buat migrasi pertama secara manual dengan memasukkan perintah "add-migration InitialCreate". Anda kemudian dapat membuat database dengan memasukkan perintah "update-database".

Menyiapkan metode Seed

Untuk tutorial ini, Anda akan menambahkan data tetap dengan menambahkan kode ke Seed metode kelas Migrasi Configuration Pertama Kode. Migrasi Pertama Kode memanggil Seed metode setelah setiap migrasi.

Seed Karena metode berjalan setelah setiap migrasi, ada data yang sudah ada dalam tabel setelah migrasi pertama. Untuk menangani situasi ini, Anda akan menggunakan AddOrUpdate metode untuk memperbarui baris yang telah disisipkan, atau menyisipkannya jika belum ada. Metode AddOrUpdate ini mungkin bukan pilihan terbaik untuk skenario Anda. Untuk informasi selengkapnya, lihat Berhati-hatilah dengan Metode AddOrUpdate EF 4.3 di blog Julie Lerman.

  1. Buka file Configuration.cs dan ganti komentar dalam Seed metode dengan kode berikut:

    var instructors = new List<Instructor>
    {   
        new Instructor { FirstMidName = "Kim",     LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
        new Instructor { FirstMidName = "Fadi",    LastName = "Fakhouri",    HireDate = DateTime.Parse("2002-07-06"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
        new Instructor { FirstMidName = "Roger",   LastName = "Harui",       HireDate = DateTime.Parse("1998-07-01"), OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
        new Instructor { FirstMidName = "Candace", LastName = "Kapoor",      HireDate = DateTime.Parse("2001-01-15") },
        new Instructor { FirstMidName = "Roger",   LastName = "Zheng",       HireDate = DateTime.Parse("2004-02-12") }
    };
    instructors.ForEach(s => context.Instructors.AddOrUpdate(i => i.LastName, s));
    context.SaveChanges();
    
    var departments = new List<Department>
    {
        new Department { Name = "English",     Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 1 },
        new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 2 },
        new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 3 },
        new Department { Name = "Economics",   Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), PersonID = 4 }
    };
    departments.ForEach(s => context.Departments.AddOrUpdate(d => d.Name, s));
    context.SaveChanges();
    
    var courses = new List<Course>
    {
        new Course { CourseID = 1050, Title = "Chemistry",      Credits = 3, DepartmentID = 3 },
        new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4 },
        new Course { CourseID = 1045, Title = "Calculus",       Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 3141, Title = "Trigonometry",   Credits = 4, DepartmentID = 2 },
        new Course { CourseID = 2021, Title = "Composition",    Credits = 3, DepartmentID = 1 },
        new Course { CourseID = 2042, Title = "Literature",     Credits = 4, DepartmentID = 1 }
    };
    courses.ForEach(s => context.Courses.AddOrUpdate(s));
    context.SaveChanges();
    
    courses[0].Instructors.Add(instructors[0]);
    courses[0].Instructors.Add(instructors[1]);
    courses[1].Instructors.Add(instructors[2]);
    courses[2].Instructors.Add(instructors[2]);
    courses[3].Instructors.Add(instructors[3]);
    courses[4].Instructors.Add(instructors[3]);
    courses[5].Instructors.Add(instructors[3]);
    courses[6].Instructors.Add(instructors[3]);
    context.SaveChanges();
    
  2. Referensi untuk List memiliki garis berlekuk merah di bawahnya karena Anda belum memiliki using pernyataan untuk namespace layanannya. Klik kanan salah satu instans List dan klik Atasi, lalu klik menggunakan System.Collections.Generic.

    Mengatasi dengan menggunakan pernyataan

    Pilihan menu ini menambahkan kode berikut ke using pernyataan di dekat bagian atas file.

    using System.Collections.Generic;
    
  3. Tekan CTRL-SHIFT-B untuk membangun proyek.

Proyek ini sekarang siap untuk menyebarkan database ContosoUniversity . Setelah Anda menyebarkan aplikasi, pertama kali Anda menjalankannya dan menavigasi ke halaman yang mengakses database, Code First akan membuat database dan menjalankan metode ini Seed .

Catatan

Menambahkan kode ke Seed metode adalah salah satu dari banyak cara untuk menyisipkan data tetap ke dalam database. Alternatifnya adalah menambahkan kode ke Up metode dan Down dari setiap kelas migrasi. Metode Up dan Down berisi kode yang mengimplementasikan perubahan database. Anda akan melihat contohnya dalam tutorial Menyebarkan Pembaruan Database .

Anda juga dapat menulis kode yang menjalankan pernyataan SQL dengan menggunakan Sql metode . Misalnya, jika Anda menambahkan kolom Anggaran ke tabel Departemen dan ingin menginisialisasi semua anggaran departemen ke $1.000,00 sebagai bagian dari migrasi, Anda dapat menambahkan baris kode berikut ke metode untuk migrasi tersebut Up :

Sql("UPDATE Department SET Budget = 1000");

Membuat skrip untuk penyebaran database keanggotaan

Aplikasi Contoso University menggunakan sistem keanggotaan ASP.NET dan membentuk autentikasi untuk mengautentikasi dan mengotorisasi pengguna. Halaman Perbarui Kredit hanya dapat diakses oleh pengguna yang berada dalam peran Administrator.

Jalankan aplikasi dan klik Kursus, lalu klik Perbarui Kredit.

Klik Perbarui Kredit

Halaman Masuk muncul karena halaman Perbarui Kredit memerlukan hak administratif.

Masukkan admin sebagai nama pengguna dan devpwd sebagai kata sandi dan klik Masuk.

Halaman masuk

Halaman Perbarui Kredit muncul.

Halaman Perbarui Kredit

Informasi pengguna dan peran ada di database aspnet-ContosoUniversity yang ditentukan oleh string koneksi DefaultConnection dalam file Web.config .

Database ini tidak dikelola oleh Kode Kerangka Kerja Entitas Terlebih Dahulu, sehingga Anda tidak dapat menggunakan Migrasi untuk menyebarkannya. Anda akan menggunakan penyedia dbDacFx untuk menyebarkan skema database, dan Anda akan mengonfigurasi profil penerbitan untuk menjalankan skrip yang akan menyisipkan data awal ke dalam tabel database.

Catatan

Sistem keanggotaan ASP.NET baru (sekarang bernama ASP.NET Identity) diperkenalkan dengan Visual Studio 2013. Sistem baru memungkinkan Anda menyimpan tabel aplikasi dan keanggotaan dalam database yang sama, dan Anda dapat menggunakan Migrasi Pertama Kode untuk menyebarkan keduanya. Aplikasi sampel menggunakan sistem keanggotaan ASP.NET sebelumnya, yang tidak dapat disebarkan dengan menggunakan Migrasi Pertama Kode. Prosedur untuk menyebarkan database keanggotaan ini juga berlaku untuk skenario lain di mana aplikasi Anda perlu menyebarkan database SQL Server yang tidak dibuat oleh Kode Kerangka Kerja Entitas Terlebih Dahulu.

Di sini juga, Anda biasanya tidak menginginkan data yang sama dalam produksi yang Anda miliki dalam pengembangan. Saat Anda menyebarkan situs untuk pertama kalinya, adalah umum untuk mengecualikan sebagian besar atau semua akun pengguna yang Anda buat untuk pengujian. Oleh karena itu, proyek yang diunduh memiliki dua database keanggotaan: aspnet-ContosoUniversity.mdf dengan pengguna pengembangan dan aspnet-ContosoUniversity-Prod.mdf dengan pengguna produksi. Untuk tutorial ini, nama pengguna sama di kedua database: admin dan nonadmin. Kedua pengguna memiliki devpwd kata sandi dalam database pengembangan dan prodpwd dalam database produksi.

Anda akan menyebarkan pengguna pengembangan ke lingkungan pengujian dan pengguna produksi untuk penahapan dan produksi. Untuk melakukannya, Anda akan membuat dua skrip SQL dalam tutorial ini, satu untuk pengembangan dan satu untuk produksi, dan dalam tutorial selanjutnya Anda akan mengonfigurasi proses penerbitan untuk menjalankannya.

Catatan

Database keanggotaan menyimpan hash kata sandi akun. Untuk menyebarkan akun dari satu komputer ke komputer lain, Anda harus memastikan bahwa rutinitas hash tidak menghasilkan hash yang berbeda di server tujuan daripada yang mereka lakukan di komputer sumber. Mereka akan menghasilkan hash yang sama ketika Anda menggunakan Penyedia Universal ASP.NET, selama Anda tidak mengubah algoritma default. Algoritma default adalah HMACSHA256 dan ditentukan dalam atribut validasi elemen machineKey dalam file Web.config.

Anda dapat membuat skrip penyebaran data secara manual, dengan menggunakan SQL Server Management Studio (SSMS), atau dengan menggunakan alat pihak ketiga. Sisa tutorial ini akan menunjukkan kepada Anda cara melakukannya di SQL Server Management Studio, tetapi jika Anda tidak ingin menginstal dan menggunakan SQL Server Management Studio, Anda bisa mendapatkan skrip dari versi proyek yang telah selesai dan melompat ke bagian tempat Anda menyimpannya di folder solusi.

Untuk menginstal SSMS, instal dari Pusat Unduhan: Microsoft SQL Server 2012 Express dengan mengklik ENU\x64\SQLManagementStudio_x64_ENU.exe atau ENU\x86\SQLManagementStudio_x86_ENU.exe. Jika Anda memilih yang salah untuk sistem Anda, itu akan gagal diinstal dan Anda dapat mencoba yang lain.

(Perhatikan bahwa ini adalah unduhan 600 megabyte. Mungkin perlu waktu lama untuk menginstal dan akan memerlukan boot ulang komputer Anda.)

Pada halaman pertama pusat penginstalan SQL Server, klik Baru SQL Server penginstalan mandiri atau tambahkan fitur ke penginstalan yang ada, dan ikuti instruksi, menerima pilihan default.

Membuat skrip database pengembangan

  1. Jalankan SSMS.

  2. Dalam kotak dialog Sambungkan ke Server , masukkan (localdb)\v11.0 sebagai Nama server, biarkan Autentikasi diatur ke Autentikasi Windows, lalu klik Sambungkan.

    SQL Server Connect to Server

  3. Di jendela Object Explorer, perluas Database, klik kanan aspnet-ContosoUniversity, klik Tugas, lalu klik Hasilkan Skrip.

    SSMS Menghasilkan Skrip

  4. Dalam kotak dialog Buat dan Terbitkan Skrip , klik Atur Opsi Pembuatan Skrip.

    Anda bisa melewati langkah Pilih Objek karena defaultnya adalah Skrip seluruh database dan semua objek database dan itulah yang Anda inginkan.

  5. Klik Tingkat Lanjut.

    Opsi Pembuatan Skrip SSMS

  6. Dalam kotak dialog Opsi Skrip Tingkat Lanjut , gulir ke bawah ke Jenis data ke skrip, dan klik opsi Data saja di daftar drop-down.

  7. Ubah Skrip GUNAKAN DATABASE menjadi False. Pernyataan USE tidak valid untuk Azure SQL Database dan tidak diperlukan agar penyebaran SQL Server Express di lingkungan pengujian.

    Data Skrip SSMS Saja, tidak ada pernyataan USE

  8. Klik OK.

  9. Dalam kotak dialog Buat dan Terbitkan Skrip , kotak Nama file menentukan tempat skrip akan dibuat. Ubah jalur ke folder solusi Anda (folder yang memiliki file ContosoUniversity.sln Anda) dan nama file menjadi aspnet-data-dev.sql.

  10. Klik Berikutnya untuk masuk ke tab Ringkasan , lalu klik Berikutnya lagi untuk membuat skrip.

    Skrip SSMS Dibuat

  11. Klik Selesai.

Membuat skrip database produksi

Karena Anda belum menjalankan proyek dengan database produksi, proyek belum dilampirkan ke instans LocalDB. Oleh karena itu Anda perlu melampirkan database terlebih dahulu.

  1. Di Object Explorer SQL Server Management Studio, klik kanan Database dan klik Lampirkan.

    Lampiran SSMS

  2. Dalam kotak dialog Lampirkan Database , klik Tambahkan lalu navigasikan ke file aspnet-ContosoUniversity-Prod.mdf di folder App_Data .

    SSMS Tambahkan file .mdf untuk dilampirkan

  3. Klik OK.

  4. Ikuti prosedur yang sama dengan yang Anda gunakan sebelumnya untuk membuat skrip untuk file produksi. Beri nama file skrip aspnet-data-prod.sql.

Ringkasan

Kedua database sekarang siap untuk disebarkan dan Anda memiliki dua skrip penyebaran data di folder solusi Anda.

Skrip penyebaran data

Dalam tutorial berikut, Anda mengonfigurasi pengaturan proyek yang memengaruhi penyebaran, dan Anda menyiapkan transformasi file Web.config otomatis untuk pengaturan yang harus berbeda dalam aplikasi yang disebarkan.

Informasi Lebih Lanjut

Untuk informasi selengkapnya tentang NuGet, lihat Mengelola Pustaka Proyek dengan Dokumentasi NuGet dan NuGet. Jika Anda tidak ingin menggunakan NuGet, Anda harus mempelajari cara menganalisis paket NuGet untuk menentukan apa yang dilakukannya saat diinstal. (Misalnya, ini mungkin mengonfigurasi transformasi Web.config , mengonfigurasi skrip PowerShell untuk dijalankan pada waktu build, dll.) Untuk mempelajari selengkapnya tentang cara kerja NuGet, lihat Membuat dan Menerbitkan File Paket dan Konfigurasi dan Transformasi Kode Sumber.