将misc文件放在bin目录中是个坏主意

JL.*_*JL. 2 .net asp.net iis

我有一个程序集,其中包含可以从IIS或控制台应用程序调用的函数.

因此,我选择了以下方法来获取路径:

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)
Run Code Online (Sandbox Code Playgroud)

显然,在从IIS调用函数的情况下,这将返回bin目录.

我打算在这条路径上创建一个txt文件.将文本文件放在bin目录中是一个坏主意吗?请提出有效的异议(如果有的话),这可能会导致问题.

Tim*_*son 5

Assembly.Location 可以返回令人惊讶的结果,例如,如果启用了卷影复制(例如,通过NUnit运行时),或者从不在本地文件系统上的位置运行(您可以通过HTTP运行.NET应用程序).

AppDomain.CurrentDomain.BaseDirectory是一个更安全的选项,因为它返回阴影复制之前的原始路径(虽然在HTTP部署的情况下,我认为它返回所在的目录ieexec.exe).

最安全的选择是在程序集中嵌入您需要的任何数据作为资源,并用于Assembly.GetManifestResourceStream在运行时访问它.