Visual Studio 2015 .NETCore类库复制文件夹到bin / Debug / net452

时间:2016-10-21 07:43:56

标签: c# visual-studio visual-studio-2015 .net-core

我在Visual Studio 2015中创建了一个.NET Core类库项目ClassLibrary1。在这个类库项目中,我添加了一个文件夹NewFolder,它将被引用的{{1}项目使用}}。

例如,我有一个名为ClassLibrary1的项目引用了ConsoleApplication1。每次构建ClassLibrary1时,都应复制ConsoleApplication1

发件人

NewFolder

PROJECT_PATH\ClassLibrary1\bin\Debug\net452\win7-x64\NewFolder

更新

我将以下内容添加到PROJECT_PATH\ConsoleApplication1\bin\Debug\net452\win7-x64\NewFolder项目的project.json文件中。

ClassLibrary1

每次构建"buildOptions: { "copyToOuput": "NewFolder" }" 时,它只会将文件夹复制到PROJECT_PATH\ClassLibrary1\bin\Debug\net452\win7-x64\NewFolder,但不会复制到PROJECT_PATH\ConsoleApplication1\bin\Debug\net452\win7-x64\NewFolder

我不知道在.NET Core项目中应如何做到这一点,因为这似乎不是非.NET Core项目的行为。

更新2:

在非.NET Core项目中,我只需将脚本添加到ConsoleApplication1的生成后事件命令行,它会自动将ClassLibrary1中包含文件和文件夹的所有内容复制到ClassLibrary1/bin/Debug

ConsoleApplication1/bin/Debug

1 个答案:

答案 0 :(得分:1)

我在非.NET Core中通常做的是创建项目中文件夹/项目的链接(您的案例ConsoleApplication1,然后将其设置为复制到输出。

无论如何,这不能在.net核心中完成。

您正在做的事情也是错误的,ClassLibrary1的project.json不会将文件复制到ConsoleApplication1的输出,您应该做的是将以下内容添加到project.json ConsoleApplication1

"copyToOutput": {

  "mappings": {
    "NewFolder/": {
      "include": "../ClassLibrary1/bin/Debug/net452/win7-x64/NewFolder/**"
    }
  }

}

mappings - 定义要复制到的文件夹(NewFolder)(/显然是必要的)

include - 定义要包含的glob模式和文件路径,以便复制以构建输出。

更新

您可以使用buildOptions嵌入文件并使用

访问它
var assembly = Assembly.GetExecutingAssembly();
var resourceName = "MyCompany.MyProduct.MyFile.txt";

using (Stream stream = assembly.GetManifestResourceStream(resourceName))
using (StreamReader reader = new StreamReader(stream))
{
    string result = reader.ReadToEnd();
}
相关问题