我按照说明创建了新的.NET Core项目并从cmd运行:
dotnet new
dotnet restore
Run Code Online (Sandbox Code Playgroud)
第二个语句创建project.lock.json
包含大量垃圾(不是真正的垃圾,而是大量的依赖,配置等).我假设这些依赖项是.NET框架,它被分解为单独的NuGet包.
我的问题:
在尝试添加对VSIX的引用时,它通常会从.csproj中的引用中提取它.但是,如果引用不在.csproj中,因为它们现在位于project.json文件中,那么它们不会被拉到vsix.然后解决方案可以编译,但是当安装到Visual Studio中时,扩展会因"找不到文件"错误而失败(因为未复制到VSIX的程序集).
我尝试使用清单的部分,如下所示:
<Asset Type="Microsoft.VisualStudio.Assembly" d:Source="Project" d:ProjectName="*PROJECTNAME*" Path="|*ASSEMBLYNAME*|" AssemblyName="|*ASSEMBLYNAME*;AssemblyName|" />
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为它无法识别包引用.
经过一些研究后,我看到了与PCL类似的问题,但是,没有答案而且问题类型不同:MEF With Portable Class library using Microsoft Composition MEF2抛出文件未找到异常
在同一个注释中,这似乎是一个可接受的解决方法:VSIX与项目模板和NuGet包,但据我所知,它意味着在安装过程中使用该包.除此之外,它不适用于我们的情况,因为他们需要指定包版本,我们正在使用project.json,所以我们可以使用浮动版本(即:2.0.*)
有没有办法引用这个project.json引用我们缺少的?也许是一种解决方法?我发现的解决方案似乎都需要在某处"粘贴"de DLL,对于浮动版本来说并不方便.
提前感谢任何帮助或输入.
编辑/更新:由于VSIX会自动推送CSPROJ中引用的任何程序集(而不是项目本身),因此尝试在项目级别获取DLL似乎不太可能.经过多次尝试,我认为有效的解决方法是从输出文件夹中获取程序集.但是,据我所知,VSIX没有办法做到这一点,还是做到了?
刚安装了rc1工具并创建了一个新的Web项目,以查看模板中的更改内容.
我注意到project.json现在包含:
"compilationOptions": {
"emitEntryPoint": true
}
Run Code Online (Sandbox Code Playgroud)
但目前还不清楚这是做什么的.
有没有人有想法?
我没有在visual studio 2017 RC中找到project.json.这个版本是否已被删除或我错过了什么?如果它被删除,它们如何存储依赖项列表?
我想使用VS 2017简化我的ASP.NET核心Web应用程序(.NET Framework)应用程序中的配置.
我已经知道我的网站将在x64环境下的Windows/IIS和.NET 4.6.2下运行.在此应用程序的预见和未预见的未来,没有机会使用从开发到生产的任何其他环境.
所以,我只需要Debug x64和Release x64模式.(不需要AnyCPU和x86!),所以我继续从项目中删除了所有其他配置.
现在,在编译时,我收到以下错误:
'C:\ Projects\MyProject\My.Website\obj\project.assets.json'没有'.NETFramework,Version = v4.6.2/win7-x64'的目标.
确保已为TargetFramework ='net462'和RuntimeIdentifier ='win7-x64'恢复此项目.MD.Website C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
我在Windows 7上开发,我不知道如何解决这个问题.任何的想法?
我想要:
IQueryable<T>
但没有第三方依赖(好吧JetBrains.Annotations
).在Visual Studio 2015.2中创建我的类库项目时,我找到了该Class Library (.NET Core)
模板
用于将类库创建为可以针对任何平台的NuGet包的项目模板
任何平台!很棒...但我无法让它发挥作用.经过大量的摆弄,我目前有以下内容project.json
(我现在可能完全打破了它):
{
"title": "My Really Useful Class Library",
"copyright": "Copyright © 2015-16 Tigra Astronomy, all rights reserved",
"description": "Really neat stuff",
"language": "en-GB",
"version": "1.0.0-*",
"dependencies": {
"JetBrains.Annotations": "10.1.4",
},
"frameworks": {
"netstandard1.5": {
"imports": "dnxcore50",
"dependencies": {
"NETStandard.Library": "1.5.0-rc2-24027",
"System.Linq.Expressions": "4.0.11-rc2-24027"
}
}
"net46": {
"frameworkAssemblies": {
"System.Collections": "4.0.*"
},
"dependencies": {}
}
},
"buildOptions": {
"xmlDoc": …
Run Code Online (Sandbox Code Playgroud) project.json会不会消失,而web.config会在ASP.NET Core 1.0中重新出现?
在路线图文档中,在2016年第四季度或第一季度的更新中,他们提到"用.csproj/MSBuild替换.xproj/project.json".
这标志着project.json的结束吗?
我查看了project.json的ASP.Net 5团队wiki条目,以确定哪些脚本命令可用,目前列出了以下内容:
{
"scripts": {
"prebuild": "echo before building",
"postbuild": "echo after building",
"prepack": "echo before packing",
"postpack": "echo after packing",
"prerestore": "echo before restoring packages",
"postrestore": "echo after restoring packages"
}
}
Run Code Online (Sandbox Code Playgroud)
这些都很简单易懂; 但是在Visual Studio中,只有prerestore和postrestore事件似乎真的开始了.预建和后期建设没有.
默认(beta 6) Visual Studio 2015模板添加以下脚本命令,该不在官方列表中:
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
Run Code Online (Sandbox Code Playgroud)
此外,似乎还有其他未记录的命令,我从同事创建的示例项目中继承了这些命令:
"scripts": {
"first-run": "npm install -g gulp bower && npm run update",
"prepare": [ …
Run Code Online (Sandbox Code Playgroud) 我有一个现有的解决方案涉及多个project.json(和相应的xproj)项目,我已经工作了一段时间.它在Visual Studio 2015中运行良好,但无法在VS 15(预览版)中加载,只显示每个加载图标的失败.没有打印消息.
发生了什么,我该如何解决?
我无法找到有关如何对.NET Standard 1.6类库(可以从.NET Core项目中引用)进行单元测试的最新文档.
这是project.json
我的图书馆的样子:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"Portable.BouncyCastle": "1.8.1.2"
},
"frameworks": {
"netstandard1.6": {}
}
}
Run Code Online (Sandbox Code Playgroud)
现在剩下的任务是能够创建某种可以进行单元测试的项目.目标是使用xUnit,因为这似乎是.NET Core团队正在推动的.
我继续创建了另一个.NET可移植的库项目,它有一个如下所示的project.json:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0",
"xunit": "2.2.0-beta4-build3444",
"xunit.runner.visualstudio": "2.1.0"
},
"frameworks": {
"netstandard1.6": {
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在该项目中的测试类如下所示:
using USB.EnterpriseAutomation.Security.DotNetCore;
using Xunit;
namespace Security.DotNetCore.Test
{
public class AesEncryptionHelperTests
{
[Fact]
public void AesEncryptDecrypt()
{
var input = "Hello world!";
var encrypted = AesEncryptionHelper.AesEncrypt(input);
var decrypted = AesEncryptionHelper.AesDecrypt(encrypted);
Assert.Equal(input, …
Run Code Online (Sandbox Code Playgroud) project.json ×10
.net ×4
.net-core ×4
asp.net-core ×4
c# ×3
asp.net-mvc ×1
msbuild ×1
vsix ×1
vsixmanifest ×1
web-config ×1
xunit.net ×1