アドバンストインストーラでは、インストール時に接続文字列を暗号化するカスタムアクションを作成しようとしています。アドバンストインストーラ(13.3)でカスタム文字列を暗号化する方法カスタムアクション
ここでは「〜」を使用できないようです。 (MVCプロジェクトの作業コードをここに移動しました)。
この行には簡単な代替方法がありますか、完全に書き直して使用する必要があります。 System.Reflection.TargetInvocationException:例外が呼び出しの ターゲットによってスローされています---> System.ArgumentExceptionの:。 カスタムアクションによってスローされ、このModifying Web.Config During Installation
例外のようなストリームのsomekindを使用するソリューション(相対仮想パス「〜」は、ここで許可されていないアプリケーション
カスタムアクション:。
[CustomAction]
public static ActionResult EncryptConnStr(Session session)
{
try
{
var config = WebConfigurationManager.OpenWebConfiguration("~");
var section = (ConnectionStringsSection)config.GetSection("connectionStrings");
var cms = section.ConnectionStrings[GetConnectionStringName()];
var connStr = BuildConnStr(session["CONN_STR_SERVER"], session["CONN_STR_DATABASE"], session["CONN_STR_USERNAME"], session["CONN_STR_PASSWORD"]);
if (cms == null)
{
// Add new Connection String
section.ConnectionStrings.Add(new ConnectionStringSettings(GetConnectionStringName(), connStr));
}
else
{
// Update existing Connection String
cms.ConnectionString = connStr;
}
// Encrypt
section.SectionInformation.ProtectSection(ConnStrEncryptionKey);
// Save the configuration file.
config.Save(ConfigurationSaveMode.Modified);
return ActionResult.Success;
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace, ex.Message);
throw;
}
}
https://solutiondesign.com/blog/-/blogs/a-simple-trick-to-centralize-your-net-configurati-1/ – Ravikumar