1

我环顾四周,根本找不到打开链接 XML 文件的方法。我的文件夹结构是这样的:

...\projects\ConfigService\
...\projects\Shared\
...\projects\WebTool\

在 Shared 文件夹中,我有一个 XML 文件,将由 WebTool 项目修改并由 ConfigService 读取(在每个文件构建和运行后多次)。为了使事情尽可能简单,我只是在每个项目的 XML 中尝试“添加为链接”,但是我如何真正获得链接对象的完整路径以便我可以打开它?我使用链接,因为在我的项目构建后文件将被更改,但我不会重建。

我找到的所有答案要么尝试将链接文件打包到项目的二进制文件中,要么说明用于添加类/代码而不仅仅是平面资源。

还是有更好的方法来做到这一点?

4

3 回答 3

1

我认为您想使用app.config文件来解决此问题。下面是你将如何做到的。

在 WebTool 服务和 Config 服务中,添加一个app.config包含以下文本的文件:

<configuration>
<appSettings>
    <add key="XmlFileLocation" value="c:\folder\projects\shared\myfile.xml" />
</appSettings>
</configuration>

然后,您可以使用以下命令检索每个程序中的文件位置:

string filepath = ConfigurationManager.AppSettings["XmlFileLocation"];

不过,您必须在项目中添加对 System.Configuration 的引用。

祝你好运!

于 2012-08-22T18:38:25.340 回答
1

最适合他的解决方案是使用该Server.MapPath()方法找到他的Shared文件夹,而不管他的网站在文件系统中的哪个位置。因为它总是[virtual-directory]\Shared完美的,他不需要担心配置设置。

于 2012-08-22T19:16:55.610 回答
0

两种方法 一种取决于您将如何部署。如果他们都去同一个文件夹,奥德先生的解决方案是一个快速和简单的。如果您要部署到更复杂的文件夹结构,例如

MyApps
  Shared
  ConfigService
  WebTool

创建一个与之镜像的文件夹结构,并将每个项目中的输出目录设置为相关目录(而不是默认的 bin\debug bin\release)。您可以使用每个工具的相对路径来获取它,例如 (..\MyXmlFile.xml)。

也就是说,我不喜欢上面的任何一个。

还有什么分享的?如果有一个 dll,那么它可能应该有一个返回文件位置或内容的方法,并让它管理该位置的位置。

PS不要忘记看到它暴露在文件系统(某处)上,您需要处理一些有意义的个人删除或修改它。

于 2012-08-22T18:29:51.343 回答