asp.net-core – 从与xproj相同的解决方案引用csproj
我有一个解决方案与以下项目:
MySolution.sln - MySolution.Client.csproj - MySolution.Service.csproj - MySolution.Models.csproj - MySolution.Server.xproj MySolution.Models是一个简单的类库,它包含由MySolution.Client和MySolution.Service引用的共享代码 – 我想在MySolution.Server中引用它. VS 2015 RC1中的GUI可以通过右键单击引用添加引用 – >添加参考.然后我看到我所有的项目在项目 – >解. 我选择MySolution.Models,然后单击确定,之后我在输出日志中收到以下错误: Errors in ...PathToSolutionMySolution.Serverproject.json Unable to locate MySolution.Models >= 1.0.0-* 真的觉得这样应该工作,因为GUI允许我添加引用而没有任何打嗝. 解决方法
所以首先要了解的是DNX项目对传统的.net项目并不了解.他们不读取或解析csproj文件.这样做是为了保持他们跨平台和跨IDE兼容(csproj是一个明显的Windows和VS具体的东西).
当您添加对“遗产”的引用(我使用遗产来表示基于.net 4.x csproj的项目)幕后,IDE将运行dnu wrap,但是在您的情况下,它看起来像是一些破裂. 以下应自动完成. >在解决方案root global.json中应该添加一个文件夹“wrap” 所以首先要检查的是确保你有一个“wrap”文件夹,并在solution.json的项目属性中包装引用.如果你不那么可能会有一些“破裂”.尝试删除参考重建并将引用添加回来.检查构建输出窗口是否有任何错误(VS仍然是RC,所以有一些错误,可能应该停止,不是). 在wrap文件夹中查找一个project.json.它应该看起来像这样: { "version": "1.0.0-*","frameworks": { "net452": { "wrappedProject": "../../LegacyClassLibrary/LegacyClassLibrary.csproj","bin": { "assembly": "../../LegacyClassLibrary/obj/{configuration}/LegacyClassLibrary.dll","pdb": "../../LegacyClassLibrary/obj/{configuration}/LegacyClassLibrary.pdb" } } } } 注意框架版本.如果存在不匹配,那么它将失败解决依赖关系.例如,如果您的MySolution.Models目标.Net 4.6,因此当包装有一个dnx46框架引用,但您的MySolution.Server项目有一个引用dnx452(在project.json中为MySolution.Server),那么它将失败,当解析依赖到MySolution.Models. 你引用的可能会有所改善.这意味着由于以下原因之一,它无法解决依赖问题 >它根据它使用的路径(从global.json中的projects参数开始)找不到MySolution.Models程序集(源代码或编译的dll). 在我的经验中,第三个如果是最常见的.对于VS 2015 RC中的DNX模板,目标的默认完整框架是dnx452(或者是dnx451?).默认情况下,新的csproj项目将为4.6(dnx46),现有项目可能只是任何事情. 一个替代解决方案: 如果MySolution.Models将由DNX和旧版(csproj)项目引用,那么您可以为“模型”创建一个并行的xproj和project.json文件.遗留项目将被忽略.实质上,您同时拥有使用相同源文件的旧版DNX项目.你可以直接像上面的引用.如果models文件夹不在/ src下,请记住文件夹结构(如果这是一个现有项目可能不是这样),那么您将需要移动它或添加对global.json中的文件夹的引用.这听起来更令人困惑,它真的是.只要记住一个DNX项目,global.json定义了DNX可以找到源代码的相对路径. DNX还可以通过nuget或者搜索GAC来解决依赖关系,但这超出了你想要做的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 是否有可能检测到页面刷新(F5)服务器端?
- asp.net-mvc-3 – 使用Html.RadioButtonFor和Html.LabelFor
- asp.net-mvc-4 – 如何设置DropDownFor的id和类 – asp.net
- asp.net-mvc – MVC4 Razor – @ Html.DisplayFor没有绑定到
- asp.net-mvc – 在asp.net MVC 3中授权登录URL
- asp.net-mvc – 在视图中转义JavaScript字符串文字
- asp.net – 在Inproc模式下与页面只读的会话锁争用
- .net – 如何过滤FileUpload控件?
- asp.net-mvc – Bug? ASP.NET MVC 2中的客户端验证导致Val
- jqgrid与asp.net webmethod和json使用排序,分页,搜索和LINQ