2

内部にさらに多くのプロジェクトを含む 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>

しかし、それは私が望むものではありません。そして今、私は疑問に思っています、何が問題になるのでしょうか?

4

1 に答える 1