我似乎无法在ASP.NET 5(vNext)项目中找到在VS 2015 RTM中制作T4模板的方法.
我甚至为Visual Studio 2015扩展安装了T4工具箱,但tt
模板没有转换.
该属性Custom Tool
不会出现在tt
文件属性中,也不能找到" 运行自定义工具 "命令.
更新
我想要T4模板的原因是config.json
文件的介绍和可插拔配置系统,这是一个很棒的东西,但是没有强类型设置属性的代价.
我读过这篇文章解释了如何实现这一点,但仍然没有一代人.由于我有一个非常复杂的配置结构,我想到制作一个生成AppSettings
文件的T4模板.对此的任何想法显然也是受欢迎的.
t4 asp.net-core-mvc visual-studio-2015 project.json asp.net-core
我将以下运行时定位到我的project.json
文件中的.NET Core Web应用程序:
"runtimes": {
"win10-x64": { },
"win8-x64": { },
"win7-x64": { }
}
Run Code Online (Sandbox Code Playgroud)
上面的运行时RID对应哪个版本的Windows Server?官方文档没有列出它们.特别是,应该使用哪个RID来定位:
我希望将我的项目转换为使用project.json
格式,但仍然使用.NET CLR,直到第三方依赖项添加对CoreCLR的支持.
话虽如此,我的一些NuGet依赖文件在"content"目录中需要输出到正在运行的应用程序的bin目录中.
由于project.json目前不支持NuGet内容,我手动将文件添加到我的项目目录中.
但是,当我运行应用程序时,它仍然无法找到这些本机程序集.如果我手动添加这些程序集.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-final\bin
,我的应用程序运行正常,所以只是这些文件的问题以某种方式进入应用程序PATH.
那么,我该怎么做?在MSBuild中,有"复制到输出目录"="复制如果更新".
我目前正在开发一个.NET Core库,我将在另一个项目中用作NuGet包.
我已经能够使用项目目录中的"dotnet pack"命令成功打包项目,并将该程序包上传到MyGet.
我更喜欢使用"nuget push"命令自动执行推送NuGet包的过程.
我的问题是project.json文件中定义的"scripts"属性似乎不在包或构建上执行.我预计这些脚本会在相应的事件发生时执行,但它们似乎没有任何效果,因为我在构建时没有看到任何输出到控制台,无论是否有详细标记.
我知道MyGet能够基于Git存储库更新包源,但我想了解当前使用project.json执行脚本是否存在一些问题.理想情况下,我想在pack成功执行后使用nuget push命令.
这是我的project.json文件:
{
"version": "0.0.1",
"scripts": {
"postbuild": [ "echo build" ],
"prebuild": "echo build",
"postpack": "echo build",
"postpublish": "echo build",
"postrestore": "echo build",
"prepack": "echo build",
"prepare": "echo build",
"prepublish": "echo build",
"prerestore": "echo build"
},
"dependencies": {
"NETStandard.Library": "1.5.0-rc2-24027"
},
"frameworks": {
"netstandard1.5": {
}
},
"buildOptions": {
"allowUnsafe": false,
"debugType": "portable",
"emitEntryPoint": false,
"xmlDoc": false
},
"commands": { },
"packOptions": {
"files": {
"include": "%project:Directory%/bin/release/*.nupkg"
}
},
"configurations": { …
Run Code Online (Sandbox Code Playgroud) scripting nuget portable-class-library project.json asp.net-core
如何project.json
在运行时读取版本号?即下面的配置中的"1.0.0-1234":
{
"title": "MyProject.Api",
"webroot": "wwwroot",
"version": "1.0.0-1234",
"dependencies": {
...
},
...
}
Run Code Online (Sandbox Code Playgroud) 我不知道我最近做了什么.但这一直持续到一周前.当我试图编译项目时突然间.它给了我 8463
编译错误.下面给出了一些.
如果你们中的任何人以前遇到过这个问题,请帮帮我.我正在使用.net核心应用程序1.0.0.但是我的电脑上也安装了1.0.1.
当我尝试使用dotnet build
cli 编译时,我收到以下错误消息.
无法找到与其中一个目标运行时兼容的框架'.NETCoreApp,Version = v1.0'的运行时目标:'win7-x64'.可能的原因:
- 项目尚未恢复或恢复失败 - 运行
dotnet restore
- 该项目未在"运行时"部分列出"win7-x64"之一.
- 您可能正在尝试发布不受支持的库.使用
dotnet pack
分发库.
我跑dotnet restore
了.我不确定第二点.因为它之前在同一台机器上工作.
此外,我没有runtimes
提到的任何部分project.json
更新:
如其他帖子所述.我补充道
"runtimes": {
"win7-x64": { }
}
Run Code Online (Sandbox Code Playgroud)
但没有奏效.
Project.Json:
{
"userSecretsId": "aspnet-IdentityServer-db76f1cf-15a8-4dc0-8200-221a224b454c",
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
},
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.DependencyInjection": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0", …
Run Code Online (Sandbox Code Playgroud) 我有一个.NET Core项目,根据我的project.json文件定位.NET Framework;
"frameworks": {
"net461": {
"dependencies": { }
}
}
Run Code Online (Sandbox Code Playgroud)
我试图找到一种方法将一些(本机)依赖项复制到我的输出构建目录,但我很难找到正确的方法来做到这一点.
当我构建这个项目时,我的输出就转到了bin\Debug\net461\win7-x64
.我想知道是否有一种方法来检索输出路径?$(TargetDir)
给我我的bin\
目录,但有一个变量要检索bin\Debug\%FRAMEWORK%\%RUNTIME%
?
我也应该在MSBuild上使用project.json脚本吗?
编辑 - 2017年5月请在下面看到我的答案.简而言之,这从未得到过支持project.json
,但鉴于project.json
VS2017 的弃用,这个问题已不再适用.
我的库(NetMQ)依赖于JetBrains.Annotations,但是我希望它只是一个dev依赖项,并且不希望它出现在使用"dotnet pack"生成的nuspec文件中.
如何使用project.json将依赖项设置为dev依赖项?
我一直在试图创建一个完全是.NET Core的新项目,这个项目可以在不同的环境中运行,但我需要添加许多以前在严格的.NET Framework中工作的项目作为参考(4.5 ).
到目前为止,我能够做的是将.NET 461框架添加到项目json中,
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
],
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Niloosoft.Hunter.ServicesDataAPI": {
"target": "project"
}
}
},
"net461": { }
}
Run Code Online (Sandbox Code Playgroud)
它成功恢复了包,我甚至设法添加了.NET框架引用,但我似乎无法正确使用它们而且我得到了这个错误.
所以,我的问题是,目前是否可以使用我的.NET Framework参考,而无需将预期的框架(因为我需要互操作性)与以下内容交换:
> #if NET45
//specific code for .NET 4.5
> #
Run Code Online (Sandbox Code Playgroud)
需要注意的是,.NETCoreApp不支持我的项目,因此,我确实需要.NET Framework,我只是需要知道我正在尝试做的是否可行.
project.json ×10
asp.net-core ×8
.net-core ×6
.net ×1
c# ×1
dotnet-cli ×1
msbuild ×1
nuget ×1
scripting ×1
t4 ×1