我有一个名为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。
我该怎么做才能正确引用这条路径?
答案 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");