appstoreファイルからconnectionstringsを読み込み、接続するデータベースをユーザーに決定させるVSTO Excel 2007アドインがあります。これはうまく動作しますが、デプロイされたバージョンを実行すると(Windowsインストーラを使用して)、接続文字列はまったく読み込まれません。すべてのプロジェクトのプライマリ出力をセットアッププロジェクトに追加しました。 app.configファイルはExcelAddInプロジェクトにありますが、Excelの見出しの下にはありません。接続文字列を管理するクラスは別のプロジェクトにあります。ここでVSTOデバッグバージョンが正常にインストールされたバージョンでapp.configが読み取られない
は私のapp.configファイルです:
<?xml version="1.0"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</configSections>
<connectionStrings>
<clear/>
<add name="MyEntities" connectionString="metadata=res://*/MyModel.csdl|res://*/MyModel.ssdl|res://*/SymModel.msl;provider=System.Data.SqlClient;provider connection string="data source=myServer;initial catalog=myDB;persist security info=True;user id=myUser;password=myPassword;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient"/>
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
私はのconnectionStringsを取得するには、以下の使用:
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
ConnectionStringsSection csSection = config.ConnectionStrings;
私はExcelAddin.dll.configファイルを追加しようとしましたセットアッププロジェクトのリリースフォルダと.projファイルがあるフォルダ。 app.configファイルの 'Copy to Output Directory'プロパティを 'Copy always'に設定し、Build Actionプロパティを 'Content'に設定しました。
私のapp.configファイルに何か問題がありますか?それとも、インストーラを実行した後に接続ストリングが取り込まれないのですか(csSectionに接続文字列が読み込まれません)。
この回答により、私は時間を節約できました。ありがとうございました! MSIを使用してVSTOインストーラを作成するときは、上記の答えに記述されているように 'Manifest'レジストリキーの値が' file:/// 'で始まるかどうかを確認してください。それ以外の場合、アドインでは、設定の代わりにExcel.exe.config(Excelアドインを作成する場合)を使用します。 – lennartk