Winforms 使用log4net在.NET上发布C#应用程序?

Winforms 使用log4net在.NET上发布C#应用程序?,winforms,visual-studio-2008,log4net,publish,Winforms,Visual Studio 2008,Log4net,Publish,我已经编写了第一个C#.NET WinForms应用程序,并准备发布第一个版本供用户安装。我使用log4net作为我的日志工具,并将其设置为: <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="Logs\"/> <param name="AppendToFile" value="true"/>

我已经编写了第一个C#.NET WinForms应用程序,并准备发布第一个版本供用户安装。我使用log4net作为我的日志工具,并将其设置为:

<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Logs\"/>
    <param name="AppendToFile" value="true"/>
    <param name="DatePattern" value="yyyy-MM-dd' Log.txt'" />
     // etc

//等
但是,当我构建应用程序时,不会记录任何内容。在visual studio中运行时,所有内容都转到
/bin/Debug/Logs/yyyy-MM-dd-Log.txt

我如何指定我的程序应该安装到哪里,以及工作目录应该是什么


请记住,此程序非常小(在Visual Studio中运行时,日志文件将写入
Debug
文件夹下,因为那里是exe所在的位置

当您将应用程序安装到
C:\Program Files\myapp
(或任何位置)时,将相对于该位置创建日志,因此应位于
C:\Program Files\myapp\logs/yyyy-MM-dd Log.txt
——假设用户有权在该位置创建目录和文件


证明这一点的最简单方法是安装应用程序并运行它。然后检查日志文件的创建位置。

由于您正在使用Click Once进行部署,应用程序将不在典型的
C:\Program Files\myapp
目录中

Vista和Windows 7:

C:\Users\<UserName>\AppData\Local\Apps\2.0\<obscure foler>\<obscure folder>
C:\Users\\AppData\Local\Apps\2.0\\
Windows XP:

C:\Documents and Settings\<UserName>\LocalSettings\Apps\2.0\<obscure foler>\<obscure folder>
C:\Documents and Settings\\LocalSettings\Apps\2.0\\
在这些目录中翻找,您应该会看到log4net文件

编辑
单击一次部署的另一种方法是Visual Studio安装程序:。这将允许您将应用程序安装在标准的
C:\Program Files\myapp
目录中

我建议您使用安装程序创建几个虚拟项目,以熟悉各种选项。最初,如果您以前没有使用过安装程序,那么使用安装程序创建MSI可能会让人望而生畏;使用一段时间后,VS安装程序将变得非常容易使用


另一个建议是在虚拟机上测试你的安装程序,这样你就不会在个人环境中不经意地做任何事情。

就是这样,目录没有创建,我已经尝试在文件系统中搜索日志文件。它从来没有被创建过,但在VST内部工作。他们应该这样做,我相信我使用的是一键安装,而不是将其从磁盘安装到C:\Program Files\myapp\Publish下如果要在标准
C:\Program Files\myapp
中安装该程序,则需要使用常规安装程序。一旦安装被设计为在用户配置文件的上下文下运行,即无任何写入的管理权限,请单击此处se.是否有visual studio内置的易于使用的安装程序,或者是否需要第三方程序?如何配置log4net?如果从文件加载配置,可能需要检查ClickOnce部署中是否存在该文件。我找到了一组与我的应用程序关联的目录和文件(如图标),但没有bin\Debug\目录或日志文件。现在的问题仍然是-如何设置应用程序,使其安装到C:\Program Files\中,并且在该位置内将存在一个bin\Debug\Log.txt?@Joe请参阅我对原始帖子的评论。简短的回答是,您无法为单击一次应用程序定义安装目录位置。