核心

时间:2017-02-19 03:24:17

标签: c# .net-core

我正在复制.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目录,但是当项目被“发布”时这不起作用

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

  

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

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

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