2009-12-09 60 views
0

我寫了一個自定義的MSBuild任務來從MSSQL存儲過程生成模型代碼。我想爲我的任務使用相同的配置來連接到數據庫,就像應用程序一樣。我創建了一個配置部分,看起來像這樣如何從自定義MSBuild任務訪問BeforeBuild事件上的app.config?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    <section name="CoreDataConnections" type="CoreData.ConfigHandler, CoreData"></section> 
    </configSections> 
    <CoreDataConnections> 
    <Connection Name="BillingDB" ConnectionString="Data Source=SERVER0;Initial Catalog=DB0;persist security info=False;user id=user;password=password;packet size=4096"/> 
    <Connection Name="ValidationDB" ConnectionString="data source=SERVER1;initial catalog=DB1;persist security info=False;user id=user;password=password;packet size=4096"/> 
    </CoreDataConnections> 
</configuration> 

和訪問一整天從我的應用程序,像這樣:

Dictionary<string,string> Connections = (Dictionary<string,string>)ConfigurationSettings.GetConfig("CoreDataConnections"); 

我的自定義任務還看不出來,不過,GetConfig回報null

我應該在這裏做什麼?我寧願不必重寫我的自定義配置節處理程序,並且更感興趣的是,例如,在MSBuild屬性中指定app.config文件,但我會盡其所能。

回答

1

更感興趣的是,比如說,規定在一個MSBuild屬性

這就是我做的app.config文件。工作很好。

+0

這就是我最終做的。回來看到了這個答案。 – 2009-12-10 19:59:03

0

您是否試過ConfigurationManager.OpenExeConfiguration方法?您應該可以將該路徑從MSBuild腳本調用它傳遞給您的任務。

由於當時正在運行的應用程序是msbuild.exe,因此當您嘗試訪問配置元素時,加載的配置爲msbuild.exe.config,正如您在您的應用程序中通常所做的那樣,您將無法獲得您的值app.config文件。

相關問題