使用带有IWizard的多项目vstemplate在项目项目上更改属性

时间:2016-03-29 16:09:01

标签: vsix

我正在创建一个VSIX扩展,生成一个要分发的多项目解决方案。我想对每个项目vstemplate中包含的单个项目做几件事,但我想我可能采取了错误的方法。我创建了一个IWizard,并且能够调试解决方案。我在vstemplate中为项目项添加了一个自定义项类型,以便识别我要标记的项。然后我执行以下操作将ProjectItems Build Action从Content更改为Compile。我仍然在学习Visual Studio Extensability并且使用这些对象的经验非常有限,所以如果下面的内容很可怕我会道歉!

public void ProjectFinishedGenerating(Project project)
{
    var myproject = (VSProject)project.Object;
    foreach (ProjectItem pi in myproject.ProjectItems)
    {
        var myBuildAction = pi.Properties.Item("ItemType").Value;
        if  myBuildAction == "CompileContent")
            pi.Properties.Item("ItemType").Value = "Compile";
    }
}

这是我在vstemplate中的项目

<VSTemplate Version="3.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<ProjectItem TargetFileName="MyFolder\$ext_safeprojectname$\$ext_safeprojectname$_CodeFile.cs" ReplaceParameters="true" ItemType="CompileContent">CodeFile.cs</ProjectItem>

0 个答案:

没有答案