2009-04-26 12 views
1

.NETマネージドデータプロバイダを展開するインストーラを作成しようとしています。アプリケーションのドロップダウンでのプロバイダーとして表示するデータプロバイダのために、私はのmachine.configのセクションでプロバイダを追加する必要があります。.msiパッケージを使用してmachine.configを変更するには

<system.data> 
    <DbProviderFactories> 
     <add name="My Data Provider" 
      invariant="Sample.MyDataProvider" 
      description="My Data Provider" 
      type="Eli.Sample.MyDataProvider, Sample.MyDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5b9d34470b87a97f" 
     /> 
    </DbProviderFactories> 
</system.data> 

は、私はこれをどのように行うのですか?ちょうどポインタが良いでしょう。ありがとう。

答えて

1

custom installer actionを作成し、これを行うにはMSIに追加する必要があります(これを行うには、Visual Studioセットアッププロジェクトを使用していると仮定しています)。

7

あなたのWixを使用している場合は、XmlConfig要素を使用できます。

<util:XmlConfig 
     Id="Machine_Config_Xml_Root" 
     File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config" 
     Action="create" 
     On="install" 
     ElementPath="//configuration/system.data/DbProviderFactories" 
     Name="add" 
     Node="element" 
     Sequence="1"> 
</util:XmlConfig> 
<util:XmlConfig 
     Id="Machine_Config_Xml_2" 
     File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config" 
     ElementPath="Machine_Config_Xml_Root" 
     Name="name" 
     Value="My Data Provider" 
     Sequence="2"> 
</util:XmlConfig> 
<util:XmlConfig 
     Id="Machine_Config_Xml_2" 
     File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config" 
     ElementPath="Machine_Config_Xml_Root" 
     Name="invariant" 
     Value="Sample.MyDataProvider" 
     Sequence="2"> 
</util:XmlConfig> 
<util:XmlConfig 
     Id="Machine_Config_Xml_2" 
     File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config" 
     ElementPath="Machine_Config_Xml_Root" 
     Name="description" 
     Value="My Data Provider" 
     Sequence="2"> 
</util:XmlConfig> 
<util:XmlConfig 
     Id="Machine_Config_Xml_2" 
     File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config" 
     ElementPath="Machine_Config_Xml_Root" 
     Name="type" 
     Value="Eli.Sample.MyDataProvider, Sample.MyDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5b9d34470b87a97f" 
     Sequence="2"> 
</util:XmlConfig> 

<util:XmlConfig 
    Id="Machine_Config_Xml_Uninstall_1" 
    File="[WindowsFolder]Microsoft.NET\Framework\v2.0.50727\CONFIG\Machine.Config" 
    Action="delete" 
    On="uninstall" 
    ElementPath="//configuration/system.data/DbProviderFactories/add[\[]@invariant='Sample.MyDataProvider'[\]]" 
    Sequence="1"> 
</util:XmlConfig> 
関連する問題