嗨,我試圖使用webconfig中的appsettings指向一個單獨的配置文件,唯一的問題是配置文件被保存在一個單獨的項目中,是否可以在一個單獨的項目中引用一個應用程序配置?web config <appSettings file =「config file in separate projects」></ appSettings>
2
A
回答
1
最好不要在項目外尋找配置。請記住,配置文件是運行時文件,因此它們通常需要位於應用程序根目錄的相同目錄或子目錄中。如果您指向根路徑之外的文件夾,當有人決定移動應用程序的物理位置併爲其使用虛擬目錄時,可能會遇到麻煩。
如果你想有一個配置文件是多個項目的共同點,我發現ConfigGen是一個很好的解決方案。它是一個配置生成器,爲不同的機器創建一個不同的(或者你的情況相同的)配置文件。它使用以下典型命令行,其中-s是一個設置xml文件,其中包含特定於環境的差異以注入各種輸出文件。 -t是一個模板文件,它可以包含來自設置文件的設置的令牌佔位符。和-o是輸出文件夾:
cfg.exe -s AppSettings.Config.Settings.xls -t AppSettings.Config.Template.xml -o Configs -ves "EmptyString"
在你的情況,你有你的設置和模板文件中的共享位置,並添加一個預生成步驟導入併產生本地AppSettings的文件。這需要一個稍微不同的命令行。我在BeforeBuild一步包裹它,你就會把你的csproj文件:
<Target Name="BeforeBuild">
<Exec Command="cfg -s X:\sharedConfig\AppSettings.Config.Settings.xls
-t X:\sharedConfig\AppSettings.config.template.xml
-l -n $(ProjectDir)AppSettings.config" />
</Target>
在這種情況下,X:\ sharedconfg \是你的模板和設置映射的位置,並有2個新的論據, -l和-n。 -l表示僅執行本地文件,因此它會在您的設置文件中查找與正在運行構建的機器相匹配的行。如果你沒有這樣的行,它會查找一個名爲「default」的行,這是你應該擁有的。
-n參數允許您指定要將輸出文件放入的確切位置。
所以,如果你把這個構建步驟放到你的項目之前,每一個都會生成相同的配置副本。
相關問題
- 1. asp.net網絡配置<appSettings file =「」>
- 2. 寫/編輯/重寫JSON文件只是將其導入</p> <p><code>import file from './config/data.json'; console.log(file); </code>反應本土
- 3. <input type =「file」/>
- 4. grails war tomcat with external config file
- 5. <context:annotation-config>和<context:component-scan>
- 6. <context:annotation-config> vs <context:component-scan>
- 7. PowerShell:爲什麼「Get-Content <file> | Out-File -Andnd <file>」進入循環?
- 8. system.io.stream <->本地C++ FILE *
- 9. <a href="http://file://///> convert file:// to file// ---remove colon
- 10. 如何將nunit-config-file遷移到mstest?
- 11. 定製<input type =「file」>?
- 12. 清除<input type = file>
- 13. <input type =「file」> EMPTY
- 14. Working ArrayList <File> and String []
- 15. php 7 --with-config-file-scan-dir不工作
- 16. 將javascript-config-file添加到herokuapp?
- 17. Assertion Failed <0 <= i && i < <int> vv.size <>> in unknown function,file src \ matrix.cpp,line 912
- 18. 混帳:</p> <pre><code>genesis% git status -s . ?? .config/aria2/ ?? .config/htop/ ?? .config/mc/ ?? .config/pacman/ ?? .config/remmina/ ?? .config/teamviewer/ ?? .config/zsh/ </code></pre> <p>但我想這個名單與'\ 0' 結尾的文件名安全與文件處理:用NULL結尾的名稱和相對路徑
- 19. does <context:annotation-config />處理HTTP請求
- 20. Windows phone 7 config/appSettings?
- 21. CMake的替換:LOCATION_<CONFIG>
- 22. 更改config-file中的設置,以便立即生效
- 23. 不使用<input type =「file」/>
- 24. 對<%@ include file =「...」%>使用URL模式
- 25. 找不到podspec for ...在<file> .podspec.json
- 26. ArrayList <File>按file.length排序()
- 27. Logstash MySQL JDBC LoadError:no such file to load - <file-path>
- 28. 如何將shared_ptr <FILE>轉換爲C++中的FILE *文件?
- 29. PHP點擊後<a href> content in text file is deleted
- 30. Python3:Reportlab Image - ResourceWarning:unclosed file <_io.BufferedReader name = ...>
「文件」屬性的目的是爲您的應用程序配置提供更大的靈活性。此外,路徑是**相對**。這是爲了允許不同的部署配置等。爲什麼你要在另一個項目中指定一個特定的文件?複製單獨的文件而不是鏈接到單獨的文件會更有意義(這可能會影響部署)。 – 2010-07-12 10:50:57
嗨Jaroslav我們擁有針對不同環境的配置,例如本地,開發,升級,活在一個名爲Configuration的獨立類項目中,所以我只需要指向當前環境的相關文件的位置。這不是我的建議,我知道這可能不是最好的方式,但在這個實例我只是遵循命令 – Matthew 2010-07-12 11:07:15