Yeni bir proje sistemi için destek uygulamak için MEF desteği/API'si yoktur. Desteği uygulamak için gidebileceğiniz iki yol vardır.
- Doğrudan Visual Studio API'sini uygulayın. Bu seçenek son derece karmaşıktır, ancak sizi belirli bir yapı sistemi veya dosya biçimiyle sınırlandırmaz. Bunu seçerseniz, temelde kendi başınıza olursunuz.
- Yönetilen Paket Çerçevesi (MPF) kitaplığını başlangıç noktası olarak kullanın. Proje formatınız ve derleme sisteminiz için MSBuild'i kullanmanız kısıtlandığından, bu seçenek çok daha kolaydır.
Seçenek # 2 ile gideceğinizi varsayalım.
MPF kitaplığı bir zamanlar Visual Studio SDK'sinin bir parçasıydı, ancak Visual Studio 2010'un yayınlandığı zamana kadar CodePlex'e taşındı. Bunu kullanmak yerine, bu yazı GitHub'da değiştirdiğim ve yayınladığım bu kitaplığın bir sürümüne odaklanacaktır. Bu kitaplığın diğer sürümlerine göre birçok avantajı vardır, bunlardan bazıları bu bağlantıyı izlediğinizde gösteren readme dosyasında belgelenmiştir.
Managed Package Framework for Visual Studio 2010
Diliniz için destek uygulamak için aşağıdakileri yapmanız gerekir.
Dilinize MSBuild desteği için komut satırı uygulayın.
- Bir proje dosyası oluşturun.
- Kendi dilinizde projeler geliştirmek için gerekli bir veya daha fazla MSBuild
*.targets
oluşturun.
- Bu, özel yapım görevlerini de yürütmek üzere bir derleme oluşturulmasını içerecektir.
IDE içinde MSBuild projenize destek uygulamak için bir VSPackage oluşturun. Bu, Visual Studio'nun seçtiğiniz dosya uzantısı ile proje dosyalarını açmasına/kaydetmesine/kapatmasına izin verir.
Kullanıcıların diliniz için IDE içinde yeni bir proje oluşturmasına izin vermek için bir veya daha fazla "Proje şablonu" oluşturun.
Kullanıcıların projeye kolayca dosya eklemelerine izin vermek için bir veya daha fazla "Proje Öğesi şablonu" oluşturun.
Bu cevap yalnızca şu anda yüzeyini tarayan, ancak ne yazık ki bu her yönüyle ilgili detaylara girmek için şu anda vaktim yok çok geniş bir soru soruldu ve ettik.
Düzenleme: Dağıtımla ilgili olarak - VSPackage'inizi bir VSIX'in içine ekleyebilir ve eklemelisiniz. Ancak, uzantınızın MSBuild uzantılarını kullanıcı projelerinin (C:\Program Files\MSBuild
veya C:\Program Files (x86)\MSBuild
) standart erişime sahip olduğu bir konuma yüklemesi gerekeceğinden, özel bir yükleme sağlamak için her şeyi bir yükleyiciye sarmanız gerekir. Bunun için WiX kullanmanızı öneririm; Bu önemsiz değil, ancak ücretsiz, olağanüstü ve güvenilir bir şekilde çalışıyor ve asıldığın zaman kullanmak için çok zor değil.
1) Kullanıcının otomatik olarak bir '.csproj' ve ilişkili dosyaları (veya Visual Studio'da bulunan başka bir dil için proje) oluşturmak için kullanabileceği bir proje şablonu eklemek veya 2) yeni bir yepyeni destek eklemek için mi çalışıyorsunuz? proje sistemi '* .myproj' adlı dosyaları temel alır (örneğin). –
Devam etmek için önceki yorumuma gerçekten ihtiyacım var. Bu kategorilerin her ikisine birden giren birden çok uzantı oluşturdum ve size yardımcı olabileceğim, ancak yalnızca yanlış soruyu yanıtlarken bulmak için zaman harcamak istemiyorum. –
Kesinlikle ikinci. Yeni bir dili entegre etmek istiyorum. – Puppy