如何确定.Net中项目文件夹的路径?

时间:2010-03-19 14:07:50

标签: .net path xslt

我有一个名为XSL的项目文件夹,其中包含用于转换xml的xsl文件。我使用以下代码来获取xsl文件:

string html = @"c:\temp\export.html";
XslCompiledTransform transform = new XslCompiledTransform();
Uri uri = new Uri(@"XSL\ToHtml.xsl", UriKind.Relative);
transform.Transform(CurrentXmlFile, html);
System.Diagnostics.Process.Start(html);

这在调试时工作正常但是当我使用clickonce进行部署并安装它时,我收到错误 - “无法找到路径{我的用户文档路径} \ XSL \ ToHtml.xsl'的一部分。它确实需要查看{安装文件夹} \ XSL \ ToHtml.xsl。

我该怎么做才能正确引用这条路径?

2 个答案:

答案 0 :(得分:3)

正如DSO的回答中所述,当您需要应用程序可执行文件或程序集所在的目录时,不应使用或隐式依赖Environment.CurrentDirectory

但是我会使用AppDomain.CurrentDomain.BaseDirectory而不是依赖当前正在执行的程序集的位置。

答案 1 :(得分:0)

相对路径基于当前目录(Environment.CurrentDirectory),您的应用无法控制该目录。如果您想从应用程序的安装文件夹中建立一个路径,请使用以下命令:

string file = Path.Combine(
    System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
    @"XSL\ToHtml.xsl");