Почему EnvDTE.ProjectItem.FileCodeModel имеет значение Null в основном проекте .net? - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь создать консольный проект приложения ядра сети программным способом.Для этого я кодировал, как показано ниже.Проблема в том, что экземпляр FileCodeModel "fcm" всегда равен нулю в коде.если я принудительно показываю окно сообщения после вызова AddFromTemplate (), проблема не возникает.но я не предпочитаю этот обходной путь.Кто-нибудь знает, почему эта проблема возникла и как ее избежать?

string itemName = "View.cs";
string itemTemplatePath =solution2.GetProjectItemTemplate("CodeFile", "CSharp");        

destProject.ProjectItems.AddFromTemplate(itemTemplatePath, itemName);

//if I forcefully show the msgbox, fcm is not null.!!
//MessageBox.show("ok","ok");

ProjectItem destProjectItem = null;
foreach(ProjectItem projectItem in destProject.ProjectItems)
{
if(projectItem.Name == itemName)
     {
     destProjectItem = projectItem;
      break;
          }
}  

FileCodeModel fcm = destProjectItem.FileCodeModel; 
if (fcm == null)
 throw new ArgumentNullException("fcm is null!!");

fcm.AddNamespace("MyNameSpace");

сейчас я использую последнюю версию VS 2017 с net core sdk.

...