首页 > 解决方案 > Visual Studio项目模板,如何用项目名称替换部分文本?

问题描述

我有一个项目模板,

<v:View x:TypeArguments="local:$safeitemname$Model" x:Name="view"
    x:Class="$rootnamespace$.$safeitemname$"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:v ="clr-namespace:$safeprojectname$.Visual"
             xmlns:local="clr-namespace:$rootnamespace$"
             mc:Ignorable="d" 
             d:DesignHeight="450" d:DesignWidth="800">
</v:View>

然而在实践中 $safeprojectname$ 并没有被替换。经过研究,我发现它仅适用于项目模板。

我尝试使用 Wizard,但是,我不知道如何使用给定的IWizard.RunStarted(Object, Dictionary<String,String>, WizardRunKind, Object[]) Method 参数获取项目名称。通过 获取它是可能的IWizard.ProjectItemFinishedGenerating(ProjectItem),但是在一切都完成后调用此方法。

我发现可能有用的另一件事是 Stackoverflow 中的答案,https: //stackoverflow.com/a/42138852/12463119 。不幸的是,我无法理解它,因为我不知道“dte”变量的来源。

请告诉我如何让我的模板能够捕获项目名称并自动写入生成的文件。

标签: c#.netvisual-studio

解决方案


推荐阅读