【问题标题】:How to include a local webpage in C# VisualStudio 2015如何在 C# Visual Studio 2015 中包含本地网页
【发布时间】:2017-04-18 02:51:46
【问题描述】:

我是 C# 开发的新手,对 resources 的工作原理一无所知。我需要在我的项目中包含一个完整的离线网站并将其显示在WebBrowser 中。我已经将该文件夹复制到我的项目目录中,但我应该使用什么 URL 来引用它?

它是正确包含的还是应该以某种方式标记为资源?

【问题讨论】:

  • 您不能在 Windows 窗体应用程序中执行此操作。我会创建一个 MVC 项目,当您运行该 Visual Studio 时,它将使用 IIS 在本地主机下为您创建一个本地 Web 服务器。然后,您可以使用 http://localhost:port/Website/index.html 导航到它
  • 听起来有点矫枉过正...我只需要显示静态 html 文件。
  • 你可以用文件位置打开文件。 C:/../index.html 可能没有创建本地主机网站?

标签: c# visual-studio


【解决方案1】:

您可以直接使用它的整个路径打开它。这可以使用以下代码完成:

var path = Path.Combine(Environment.CurrentDirectory, @"Website\index.html");
Browser.Navigate(path);

它获取程序的当前目录并将文件的相对路径附加到它。然后它将生成的绝对 URI 传递给 WebBrowser。

但是请注意,这只有在您 change the properties of the folder 时才有效,因此里面的所有文件都将被标记为 Copy to Output Directory。首先选择所有文件——只有文件,而不是文件夹! – 在解决方案资源管理器中,然后在属性中找到 Copy to Output Directory 并将其设置为 Copy alwaysCopy if newer。这将确保 all the files get copiedbin 文件夹,您的程序将从该文件夹中执行。

【讨论】:

  • 当然可以,但是编译后的代码会被复制到bin/Debug,这意味着我不能使用Environment.CurrentDirectory。我可以做\..\..,但考虑到可移植性,这并不感觉是正确的做法。此外,生成的程序在实际情况下将无法使用。
  • 如果将其设置为资源,它将与其余代码一起构建在 bin 文件夹中。然后您可以通过 Environment.CurrentDirectory 访问它
  • 但是如何将整个文件夹标记为资源? html 文件具有指向图像和脚本的相对链接...
  • 您可以将文件夹标记为复制到输出目录stackoverflow.com/a/7358644
  • 这是我需要的答案 ;)
猜你喜欢
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多