IVsSolution2.CreateProject Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir proje oluşturur veya açar.
public:
int CreateProject(Guid % rguidProjectType, System::String ^ lpszMoniker, System::String ^ lpszLocation, System::String ^ lpszName, System::UInt32 grfCreateFlags, Guid % iidProject, [Runtime::InteropServices::Out] IntPtr % ppProject);
public int CreateProject (ref Guid rguidProjectType, string lpszMoniker, string lpszLocation, string lpszName, uint grfCreateFlags, ref Guid iidProject, out IntPtr ppProject);
abstract member CreateProject : Guid * string * string * string * uint32 * Guid * nativeint -> int
Public Function CreateProject (ByRef rguidProjectType As Guid, lpszMoniker As String, lpszLocation As String, lpszName As String, grfCreateFlags As UInteger, ByRef iidProject As Guid, ByRef ppProject As IntPtr) As Integer
Parametreler
- rguidProjectType
- Guid
'ndaki Proje fabrikası kaydedildiğinde elde edilen proje türü için benzersiz tanımlayıcı. İçin bir değer belirtilmişse GUID_NULL olabilir lpszMoniker . Bu parametre, oluşturulacak veya çözüme eklenecek projenin türünü gösterir. Değer GUID_NULL ise, ortam, dosyanın uzantısına bağlı olarak proje türünü saptamaya çalışır.
- lpszMoniker
- String
'ndaki Dosya adının işaretçisi. Bu yöntem bir projeyi açmak için kullanılırsa, diskteki projenin yolunu (proje adı ve dosya uzantısı dahil) belirtin. Yöntemi bir proje oluşturmak için kullanılıyorsa, kopyalanacak şablon dosyasının tam yolunu belirtin.
- lpszLocation
- String
'ndaki Yeni projenin konumunu belirten yol işaretçisi. Bu parametre yalnızca parametre için CPF_CLONEFILE belirtildiğinde kullanılır grfCreateFlags ; Aksi takdirde null (açık proje için). Proje dizin tabanlı bir projem ise, bu, projenin dizinidir. Projenin proje dosyası bu dizine kaydedilir. Proje dizin tabanlı değilse, bu konum yalnızca proje dosyasını ve belki de yeni oluşturulan öğelerin varsayılan dizini olarak kaydetmek için kullanılır. szLocationParametresi, sonunda eğik çizgi içerecek şekilde tanımlanır ( ) . Daha sonra proje fabrikası, proje dosyasının yol adını oluştururken "C: ve " " C:\myprojelerproject1 "gibi görünen yolları aramak zorunda değildir.
- lpszName
- String
'ndaki Yeni proje adına yönelik işaretçi. Bu parametre yalnızca parametre için CPF_CLONEFILE belirtildiğinde kullanılır grfCreateFlags ; Aksi takdirde null (açık proje için). Proje adı bir dosya uzantısı içermiyor.
- grfCreateFlags
- UInt32
'ndaki Projenin oluşturulma veya açılma şeklini denetler. Değerlerin listesi için grfCreateFlags bkz __VSCREATEPROJFLAGS ..
- iidProject
- Guid
'ndaki Döndürülen arabirim tanımlayıcısı ppProject . Bu değer, hiçbir dönüş olmadığını belirtmek için iid_NULL olabilir.
- ppProject
-
IntPtr
nativeint
[Out, iid_is (ııdproject)] Yeni oluşturulan projeye yönelik işaretçi.
Döndürülenler
Yöntem başarılı olursa, döndürür S_OK . Başarısız olursa, bir hata kodu döndürür.
Uygulamalar
Açıklamalar
COM Imzası
Vsshell. IDL dosyasından:
HRESULT IVsSolution2::CreateProject(
[in] REFGUID rguidProjectType,
[in] LPCOLESTR lpszMoniker,
[in] LPCOLESTR lpszLocation,
[in] LPCOLESTR lpszName,
[in] VSCREATEPROJFLAGS grfCreateFlags,
[in] REFIID iidProject,
[out, iid_is(iidProject)] void **ppProject
);
Yeni bir proje oluşturmak için bu yöntemi kullanıyorsanız, ve için değerler sağlayın lpszMoniker lpszLocation lpszName . Mevcut bir projeyi açmak için bu yöntemi kullanıyorsanız, lpszLocation ve lpszName null .
Bu yöntem yalnızca proje dosyalarını oluşturma ve açma işlemi gerçekleştirir ve bir çözüm dosyasının açılmasını, diğer bir deyişle, SLN, DSW veya VBG uzantılı dosyaları desteklemez. Bu dosya türlerinin açılması yöntemi tarafından işlenir OpenSolutionFile .
Yeni bir proje oluşturmak, boş olan mevcut bir proje kopyalanarak gerçekleştirilir. Ortam, IVsPackage Bu yöntemi dosya uzantısına göre çağıran belirler.
CPF_CLONEFILEVe CPF_OVERWRITE belirtilirse, proje hedef proje dosyasının üzerine yazar. CPF_OVERWRITEBelirtilmemişse, bu yöntemden belirli BIR HRESULT VS_E_PROJECTALREADYEXISTS döndürülür. Daha sonra ortam Bu proje zaten var iletişim kutusunu görüntüler. Kullanıcı proje dosyasının üzerine yazmayı seçerse, ortam <xref:Microsoft.VisualStudio.Package.ProjectFactory.CreateProject%2A> yöntemi yeniden çağırır ve hem hem de belirterek CPF_CLONEFILE CPF_OVERWRITE .
Bu yöntem, bayrak belirtilmediği takdirde Kullanıcı arabirimini görüntüleyebilir CPF_SILENT . Bu yöntem, kullanıcıya hata iletileri bildirmemelidir. Bu yöntem, ortamın standart hata raporlama kurallarını kullanır; SetErrorInfo oluşan herhangi bir hatayı kaydetmek için yöntemini çağırır ve sonra HRESULT hatası döndürür. Çağıran, sonunda ReportErrorInfo hata iletisini görüntüleyen yöntemini çağırır.
Bu yöntem bir HRESULT hatası döndürdüğünde, SetErrorInfo hangi VSPackage veya proje yüklenemediğini ve bunun nedenini gösteren bilgileri sağlamak için yöntemini çağırır. Bu yöntemin çağıranı, ReportErrorInfo Bu hata iletisini kullanıcıya göstermek için yöntemini kullanabilir.