【问题标题】:The current project.json path in core核心中的当前 project.json 路径
【发布时间】:2017-02-19 17:56:45
【问题描述】:

我正在复制 .net 核心项目中的一些文件,方法是将它们包含在项目中,将构建操作设置为“内容”并设置为“始终复制”,并希望从项目中引用这些文件。在 .Net 框架中,诸如“foo.zip”之类的相对路径将引用复制到输出目录的文件。但是,该文件被复制到项目目录中,而不是包含 DLL 的输出目录中。例如。 foo.zip 将与源文件放在一起,而输出 dll 将是“bin/Debug|Release/netcoreapp1.0”。在代码中使用“foo.zip”的相对路径是指路径“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\foo.zip”

这是故意的吗?如果是这样,有没有办法可以访问输出目录?我找到的最接近的是AppContext.BaseDirectory,它指的是 netcoreapp1.0 目录,但是当项目“发布”时这不起作用

更新:经过一些实验,内容的构建操作负责将文件复制到源目录,这看起来很奇怪。将其设置为“无”按预期执行,并将文件复制到输出目录。此路径是否按预期指向 IDE 目录?

【问题讨论】:

  • 等待两周.. vs2017 RC 将解决这个问题。

标签: c# .net-core


【解决方案1】:

您需要使用 project.json 中的 publishOptions 部分将文件包含在输出中:

"publishOptions": {
    "include": "foo.zip"
},

该文件应该在运行时与您编写代码时处于相同的相对位置。

【讨论】:

    【解决方案2】:

    更新:经过一些实验,内容的构建动作是 负责将文件复制到看起来的源目录 奇怪的。将其设置为“无”按预期执行,并复制文件 到输出目录。此路径是否指向 IDE 目录 预期?

    内容的构建操作将文件复制到源目录的事实是预期和有用的。例如,当您使用 MVC 开发网站时,您的视图(.cshtml 文件)通常位于源目录的 Views 目录中,靠近ControllersModels 目录。

    现在您正在从 Visual Studio 运行 Web 应用程序,并且您只想更改 HTML 页面中的一些文本。您可以简单地在 Visual Studio 下编辑 .cshtml 文件并保存。 您的更改将在您在网络浏览器中刷新页面后直接显示。 无需再次编译和启动网络应用程序,节省了大量的网络开发时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多