标签: project.json

什么是project.lock.json?

我按照说明创建了新的.NET Core项目并从cmd运行:

dotnet new
dotnet restore
Run Code Online (Sandbox Code Playgroud)

第二个语句创建project.lock.json包含大量垃圾(不是真正的垃圾,而是大量的依赖,配置等).我假设这些依赖项是.NET框架,它被分解为单独的NuGet包.

我的问题:

  1. 我的假设是否正确?
  2. 我可以通过删除不需要的NuGet包/依赖项来使我的应用程序更轻松吗?
  3. 怎么样?

.net .net-core project.json

71
推荐指数
1
解决办法
2万
查看次数

将project.json包引用添加到VSIX

在尝试添加对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没有办法做到这一点,还是做到了?

c# vsix vsixmanifest visual-studio-2015 project.json

38
推荐指数
1
解决办法
844
查看次数

compilationOptions.emitEntryPoint是什么意思?

刚安装了rc1工具并创建了一个新的Web项目,以查看模板中的更改内容.

我注意到project.json现在包含:

"compilationOptions": {
    "emitEntryPoint": true
}
Run Code Online (Sandbox Code Playgroud)

但目前还不清楚这是做什么的.

有没有人有想法?

project.json asp.net-core

26
推荐指数
2
解决办法
8751
查看次数

在Visual Studio 2017 RC解决方案资源管理器中找不到project.json

我没有在visual studio 2017 RC中找到project.json.这个版本是否已被删除或我错过了什么?如果它被删除,它们如何存储依赖项列表?

project.json

22
推荐指数
1
解决办法
2万
查看次数

用于Windows x64的ASP.NET核心应用程序(.NET Framework)仅在project.assets.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上开发,我不知道如何解决这个问题.任何的想法?

c# msbuild project.json asp.net-core visual-studio-2017

21
推荐指数
2
解决办法
1万
查看次数

如何创建.NET Core类库并从.NET 4.6项目引用它?

我想要:

  • 创建一个定义一些接口和简单通用助手类的类库.它将依赖于泛型集合,IQueryable<T>但没有第三方依赖(好吧JetBrains.Annotations).
  • 能够从任何地方引用该类库(特别是UWP,net46和ASP.Net Core RC2)
  • 理想情况下,始终使用project.json系统,尽管如果需要我准备牺牲它.
  • 将完成的库发布到NuGet源,然后在其他应用程序中使用它

在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)

compatibility .net-core project.json asp.net-core

20
推荐指数
2
解决办法
2万
查看次数

project.json是否已被弃用?

project.json会不会消失,而web.config会在ASP.NET Core 1.0中重新出现?

路线图文档中,在2016年第四季度或第一季度的更新中,他们提到"用.csproj/MSBuild替换.xproj/project.json".

这标志着project.json的结束吗?

.net web-config .net-core project.json asp.net-core

19
推荐指数
1
解决办法
3475
查看次数

ASP.Net 5 project.json脚本命令的完整列表?(Visual Studio 2015)

我查看了project.jsonASP.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)

asp.net-mvc visual-studio-2015 project.json

17
推荐指数
1
解决办法
5005
查看次数

为什么我的project.json/xproj项目没有在Visual Studio 15(预览版)中打开?

我有一个现有的解决方案涉及多个project.json(和相应的xproj)项目,我已经工作了一段时间.它在Visual Studio 2015中运行良好,但无法在VS 15(预览版)中加载,只显示每个加载图标的失败.没有打印消息.

发生了什么,我该如何解决?

.net visual-studio visual-studio-2015 project.json

16
推荐指数
1
解决办法
9335
查看次数

单元测试.NET Standard 1.6库

我无法找到有关如何对.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)

.net c# xunit.net .net-core project.json

16
推荐指数
2
解决办法
9630
查看次数