我有一个Windows控制台应用程序。我从app.config获取了一些值。有写日志文件。调试时,我想在桌面上编写它们。但是在发布应用程序时,日志应该在远程服务器中。现在,我必须在每次调试和发布之间手动设置值。
我们可以创建两个版本的app.config文件并正确使用它们吗?
办理登机手续时,我们只会检查app.config中的生产。
请记住,它不是一个asp.net Web应用程序。在这种情况下,我们可以使用不同的web.config文件。
答案 0 :(得分:5)
是的,你可以,但你需要一个扩展来做到这一点。我过去曾使用SlowCheetah。
使用SlowCheetah为更改日志路径的发布版本添加转换。你的app.Release.config转换文件看起来像这样。
<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations
see the web.comfig examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="logDirectory" value="D:\releaseLogs" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
您可以根据需要为测试和调试环境添加转换。
在您的源代码管理中,您将签入:
构建解决方案后,SlowCheetah将根据目标环境将正确的转换应用于app.config。
答案 1 :(得分:2)
扩展的另一种替代方法是在项目中添加Post-Build事件:
if "Debug"=="$(ConfigurationName)" goto :nocopy
del "$(TargetPath).config"
copy "$(ProjectDir)\App.Release.config" "$(TargetPath).config"
:nocopy
将App.config复制到App.Release.config并根据需要进行更改,当您发布为Release时,将使用相应的文件。