Saat mengembangkan proyek baru-baru ini, saya berencana menggunakan NDoc untuk menghasilkan dokumentasi bantuan untuk perpustakaan kelas. Saya mengunduh Percyboy versi Cina 1.3. Dokumentasinya mengatakan itu mendukung .net2.0 Namun, ketika menggunakannya, saya menemukan bahwa pengecualian terjadi ketika menerapkan NDoc untuk membuat proyek NDoc baru dari solusi, dan dokumen bantuan tidak dapat. berhasil dihasilkan.
Unduh program sumber, gunakan konversi vs.net2005 untuk membuka solusi ndoc untuk debugging, modifikasi bug, dan lewati debugging. Bug dan solusi yang relevan dicatat sebagai berikut perakitan yang dihasilkan oleh vs.net , dapat ditangani sebagaimana mestinya.
1. Jika proyek dalam solusi berada dalam direktori dengan nama Cina, pengecualian yang dilempar tidak dapat ditangani. Alasannya adalah ketika ndoc mem-parsing file solusi, ia menggunakan pengkodean UTF untuk membuka file solusi, sehingga karakter berbahasa Mandarin tidak diproses dengan benar. Solusi: Buka file solusi di bawah proyek gui, temukan metode baca, dan gunakan (reader=new StreamReader(path)) untuk membuka file menggunakan (reader=new StreamReader(path,System.Text.Encoding.GetEncoding(0) )))mengganti. Untuk penggunaan spesifik StreamReader, silakan merujuk ke msdn.
2. Saat mem-parsing file proyek, file proyek yang dihasilkan oleh vs.net2005 pada dasarnya adalah file xml, tetapi beberapa memiliki tag , dan beberapa file proyek tidak, misalnya alasan yang tidak diketahui. , dan saya tidak punya waktu untuk menganalisis alasan spesifiknya. Hal ini menyebabkan perlunya memproses file proyek berdasarkan kasus per kasus. Saya menganalisis ide asli ndoc dan ini juga terjadi. Mungkin format kedua file proyek di versi sebelum 2005 berbeda, jadi ndoc memprosesnya berdasarkan kasus per kasus saat menguraikan file proyek. Namun, meskipun terdapat perbedaan dalam file proyek yang dihasilkan dengan vs.net2005, formatnya sama dan tidak perlu diproses berdasarkan kasus per kasus. Solusi: Buka file proyek di bawah proyek gui, cari GetConfiguratin(string configName), dan ubah kode berikut:
if (_ProjectDocument.FirstChild.Name == "Proyek")
{
node = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Konfigurasi)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
}
kalau tidak
{
node = _ProjectNavigator.Select(String.Format("/VisualStudioProject/CSHARP/Build/Settings/Config[@Name='{0}']", configName));
}
Ganti dengan:
node = _ProjectNavigator.Select(string.Format("VS2005:Project/VS2005:PropertyGroup[@Condition=" '$(Konfigurasi)|$(Platform)' == '{0}|AnyCPU' "]", configName ), _ProjectNamespaceManager);
Setelah melakukan pemrosesan di atas dan melewati kompilasi, menggunakan fungsi ndoc untuk membuat proyek ndoc baru dari solusi .net dapat diproses secara normal, tetapi saya tidak tahu apakah pemrosesan ini akan berdampak buruk pada solusi yang dihasilkan oleh versi sebelum tahun 2005. Namun dampaknya, waktu peluncuran pada tahun 2005 tidaklah singkat, dan sebagian besar proyek seharusnya dimigrasikan ke tahun 2005, sehingga dampaknya tidak terlalu signifikan.
http://www.cnblogs.com/yxy21969/archive/2006/11/28/575257.html