内部にさらに多くのプロジェクトを含む C# 用の独自のプロジェクト テンプレートを作成しています。
そこに独自のウィザードを追加しました。そして、それはうまく機能します。
しかし、プロジェクトのカスタム パラメータの一部を入れようとすると、置換辞書に追加され、ウィザード ライブラリで元の値 (置換されない) がプロジェクトに取得されます ( "$connectionString$" のままです)。
たとえば、RunStartedメソッドに次のコードを追加するとします。
private string _connectionString = "Lorem ipsum for example";
public void RunStarted(object automationObject, Dictionary<string, string>replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
replacementsDictionary.Add("$connectionString$", _connectionString);
}
そして私のweb.configで:
<connectionStrings>
<add name="DAL.Database.Properties.Settings.MyConnectionString" connectionString="$connectionString$" providerName="System.Data.SqlClient" />
</connectionStrings>
そして、私の.vstemplateファイルでも、このファイルがパラメーターのチェックと変更用にマークされていることがわかります。
<ProjectItem ReplaceParameters="true" OpenInEditor="true" TargetFileName="Web.config">Web.config</ProjectItem>
注:たとえば、次のように.vstemplateファイルにハードコードされた値を入れた場合にのみ機能します。
<CustomParameters>
<CustomParameter Name="$connectionString$" Value="Some dummy value" />
</CustomParameters>
しかし、それは私が望むものではありません。そして今、私は疑問に思っています、何が問題になるのでしょうか?