C# 通知项目已编辑并请求重新加载项目。请检查下面我的答案,其中包含操作将隐式执行,并为此开发了一个VSIX。感谢您的贡献。下次不要犹豫,发布你自己的答案,而不是编辑别人的答案。你可以在一个有重要疏忽的答案下发表评论,以查看你的答案。我的帖子中有太多的信息供评论

C# 通知项目已编辑并请求重新加载项目。请检查下面我的答案,其中包含操作将隐式执行,并为此开发了一个VSIX。感谢您的贡献。下次不要犹豫,发布你自己的答案,而不是编辑别人的答案。你可以在一个有重要疏忽的答案下发表评论,以查看你的答案。我的帖子中有太多的信息供评论,c#,winforms,visual-studio-2010,visual-studio,projects-and-solutions,C#,Winforms,Visual Studio 2010,Visual Studio,Projects And Solutions,通知项目已编辑并请求重新加载项目。请检查下面我的答案,其中包含操作将隐式执行,并为此开发了一个VSIX。感谢您的贡献。下次不要犹豫,发布你自己的答案,而不是编辑别人的答案。你可以在一个有重要疏忽的答案下发表评论,以查看你的答案。我的帖子中有太多的信息供评论,因此它最初建议将其作为一个编辑,因为它似乎是合法和有用的额外信息——我在尝试实现boot750的答案时必须研究和了解自己(但未能通过)一般来说,如果你不能在评论中加入你额外的有用信息,那就意味着是时候发布一个答案了,所以你最终做了正确的事情。


通知项目已编辑并请求重新加载项目。请检查下面我的答案,其中包含操作将隐式执行,并为此开发了一个VSIX。感谢您的贡献。下次不要犹豫,发布你自己的答案,而不是编辑别人的答案。你可以在一个有重要疏忽的答案下发表评论,以查看你的答案。我的帖子中有太多的信息供评论,因此它最初建议将其作为一个编辑,因为它似乎是合法和有用的额外信息——我在尝试实现boot750的答案时必须研究和了解自己(但未能通过)一般来说,如果你不能在评论中加入你额外的有用信息,那就意味着是时候发布一个答案了,所以你最终做了正确的事情。即使它只是建立在别人的答案上,这是真的吗?这怎么符合无剽窃规则?其他人的答案是否应该包括在我的答案中,并给予他们荣誉?当然。Y当你有其他答案不包含的有用信息时,你应该始终发布一个答案。你可以在回答之前说明这是对现有答案的一个非常重要的补充(就像你已经做的那样),但不要羞于通过发布自己的答案来为自己的贡献赢得荣誉。难道你不应该拥有folderLoc和fileLoc的相对路径吗?这可以分类工作,但不会作为源代码管理中的新文件添加。
var p = new Microsoft.Build.Evaluation.Project(@"C:\projects\MyProject.csproj");
p.AddItem("Compile", @"C:\folder\file.cs");
p.Save();
var p = new Microsoft.Build.Evaluation.Project(@"C:\projects\BabDb\test\test.csproj");
        p.AddItem("Folder", @"C:\projects\BabDb\test\test2");
        p.AddItem("Compile", @"C:\projects\BabDb\test\test2\Class1.cs");
        p.Save();
 var p =
Microsoft.Build.Evaluation
  .ProjectCollection.GlobalProjectCollection
    .LoadedProjects.FirstOrDefault(pr => pr.FullPath == projFilePath);

if (p == null)
   p = new Microsoft.Build.Evaluation.Project(projFilePath);
var p = Microsoft.Build.Evaluation
        .ProjectCollection.GlobalProjectCollection
        .LoadedProjects.FirstOrDefault(pr => pr.FullPath == projFilePath);

if (p == null)
    p = new Microsoft.Build.Evaluation.Project(projFilePath);

// Update instance of project
p.ReevaluateIfNecessary();

// Check folder is not already in the project
var folderLoc = @"C:\projects\BabDb\test\test2";
if(p.Items.FirstOrDefault(i => i.EvaluatedInclude == folderLoc) == null)
    p.AddItem("Folder", folderLoc);

// Check file is not already in the project
var fileLoc = @"C:\projects\BabDb\test\test2\Class1.cs";
if(p.Items.FirstOrDefault(i => i.EvaluatedInclude == fileLoc) == null)
    p.AddItem("Compile", fileLoc);

p.Save();