我有一个MVC 6(vNext/ASP.NET 5)项目,有一个用于DAL(数据访问层)的类库.现在我得到一个例外,因为NHibernate找不到我试图坚持的实体的映射文件.我已经看到严格的指令将此XML映射文件标记为嵌入式资源而不是复制到输出,但是在我设法为此文件打开的三个属性页中,没有任何一个可以规定这一点.
我只是转向基于代码的流畅映射,但这个问题并不是我的一个NHibernate映射文件所特有的.在解决方案资源管理器中右键单击的项目项的旧属性页面就消失了.我希望如果嵌入式资源这样的东西仍然存在,那么project.json
我们必须在其他地方指定它.
UPDATE
我以前的答案不再有效(自RC2起),resource
现在标记为已弃用.(谢谢@Yossarian)
现在使用的正确方法是buildOptions/embed
:
... "buildOptions": { "emitEntryPoint": true, "embed": [ "9NLiZmx.png" ] }, ...
你必须使用project.json中的section 资源,就像这样
{ "compile": "*.cs", "resource": [ "mapping.xml" ] }
默认情况下,包含project.json的目录中的所有代码文件都包含在项目中.您可以使用project.json的include/exclude部分来控制它.
处理文件的project.json文件的大多数部分都允许使用通常称为通配符的glob模式.
name default value
===============================================
compile
compileExclude
content **/*
contentExclude
preprocess compiler/preprocess/**/*.cs
preprocessExclude
resource compiler/preprocess/resources/**/*
resourceExclude
shared compiler/shared/**/*.cs
sharedExclude
publishExclude bin/**;obj/**;**/.*/**
exclude
更多信息:http://docs.asp.net/en/latest/dnx/projects.html#including-excluding-files
using System; using System.Reflection; namespace ConsoleApp1 { public class Program { public static void Main(string[] args) { var assemblyName = new AssemblyName("ConsoleApp1"); var resources = string.Join(Environment.NewLine, Assembly.Load(assemblyName).GetManifestResourceNames()); Console.WriteLine("List of Manifest Resource Names"); Console.WriteLine("======================"); Console.WriteLine(resources); } } }
{ "version": "1.0.0-*", "description": "ConsoleApp1 Console Application", "authors": [ "Alberto Monteiro" ], "tags": [ "" ], "projectUrl": "", "licenseUrl": "", "compilationOptions": { "emitEntryPoint": true }, "resource": "9NLiZmx.png", "dependencies": { }, "commands": { "ConsoleApp1": "ConsoleApp1" }, "frameworks": { "dnx451": { }, "dnxcore50": { "dependencies": { "Microsoft.CSharp": "4.0.1-beta-23516", "System.Collections": "4.0.11-beta-23516", "System.Console": "4.0.0-beta-23516", "System.Linq": "4.0.1-beta-23516", "System.Threading": "4.0.11-beta-23516", "System.IO": "4.0.11-beta-23516", "System.IO.FileSystem": "4.0.1-beta-23225", "System.Reflection": "4.1.0-beta-23516" } } } }
List of Manifest Resource Names
======================
ConsoleApp1.9NLiZmx.png
Alberto的答案不再有效(自RC2起),resource
现在标记为已弃用.
现在使用的正确方法是buildOptions/embed
:
... "buildOptions": { "emitEntryPoint": true, "embed": [ "9NLiZmx.png" ] }, ...