0

我有一个控制台应用程序,它引用了一个包含内容文件夹的 dll。当我构建应用程序时,我可以正确地看到 bin/debug 中包含内容的文件夹。当我尝试发布相同的应用程序时,该文件夹丢失。

我可以通过将文件夹直接添加到应用程序中并将内容文件添加为链接来解决它,但这非常脆弱,因为它不会拾取添加到 dlls 内容文件夹中的新文件。

有没有办法告诉发布包含构建中的子文件夹?

4

1 回答 1

0

您的问题确实提出了更多问题。但我假设它与作为控制台应用程序无关,但可能适用于任何“应用程序”。如果是这样 ...

我认为您的问题在于在运行时引用文件夹。您的应用程序可能没有从您认为的文件夹中运行。

所以有两种方法:

  • 尝试在运行时解析绝对路径(对我来说感觉很糟糕)
  • 使用 Windows 为文件使用“标准”区域。

为“Environment.SpecialFolder”做一个谷歌。在 Windows 的后一版本中,用户可编辑的文件只能位于某些文件夹中,例如“CommonApplicationData”。这可能适合您的应用程序,或者只是提供一个很好的公共区域。

如果您尝试将用户可编辑的文件夹放在程序文件区域中,Windows 可能是“卑鄙的”。不要考虑您的开发环境,而要考虑已部署的环境。

安装程序通常支持这些特殊文件夹。

于 2012-10-01T10:59:00.927 回答