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

jmc*_*jmc 6 c# visual-studio visual-studio-2015 .net-core

我有一个ClassLibrary1在Visual Studio 2015中创建的.NET Core类库项目.在这个类库项目中,我添加了一个文件夹NewFolder,该文件夹将被引用的项目使用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"
}"
Run Code Online (Sandbox Code Playgroud)

它只复制文件夹,PROJECT_PATH\ClassLibrary1\bin\Debug\net452\win7-x64\NewFolder但不是PROJECT_PATH\ConsoleApplication1\bin\Debug\net452\win7-x64\NewFolder每次构建时ConsoleApplication1.

我不知道在.NET Core项目中应该怎么做,因为这似乎不是非.NET Core项目的行为.

更新2:

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

xcopy "$(ProjectDir)NewFolder" "$(TargetDir)NewFolder" /E /Y

gil*_*hal 1

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

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

你所做的也是错误的,project.jsonClassLibrary1不会将文件复制到你应该做的输出中ConsoleApplication1,将以下内容添加到你project.jsonConsoleApplication1

"copyToOutput": {

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

}
Run Code Online (Sandbox Code Playgroud)

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

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

更新

您可以使用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();
}
Run Code Online (Sandbox Code Playgroud)