每次我使用新的.NET Core RC2模板构建项目时,都没有提供可运行的.EXE文件.如果我按F5调试我的控制台应用程序,它可以通过
C:\Program Files\dotnet\dotnet.exe
Run Code Online (Sandbox Code Playgroud)
应用.如果我使用
dotnet run
Run Code Online (Sandbox Code Playgroud)
在文件夹中的命令,它运行正常.但我认为没有.NET Core CLI工具就无法运行应用程序.
我的内容
bin\Debug\netcoreapp1.0\
Run Code Online (Sandbox Code Playgroud)
文件夹看起来像这样:
你可以看到没有.EXE文件可用.只是dll.
我忽略了什么吗?或者我的project.json文件有问题吗?
{
"version": "1.0.0-*",
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-3002702"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": "dnxcore50"
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
在"旧学校"MSBuild项目中 - 例如仍然在VS2017中的Windows窗体中使用 - 文件可以通过DependentUpon
csproj文件中的项目"嵌套" .
我用它来在Noda Time中将单元测试组合在一起,例如
<Compile Include="LocalDateTest.PeriodArithmetic.cs">
<DependentUpon>LocalDateTest.cs</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)
这导致了易于导航的测试:
转向project.json
.NET Core时,我故意"丢失"此功能,但希望在转换为MSBuild时会返回.但是,看起来基于.NET Core SDK(根元素<Project Sdk="Microsoft.NET.Sdk">
)的MSBuild项目在Visual Studio 2017中得不到相同的处理,即使ItemGroup
手动添加与"旧学校"项目相同的元素.
ASP.NET Core项目为缩小的CSS和Javascript接收自动嵌套,但目前尚不清楚如何将其应用于.NET Core库项目中的C#.
微软是否有理由选择不支持.NET Core中的AppDomains?
AppDomains在构建长时间运行的服务器应用程序时特别有用,我们可能希望更新服务器加载的程序集是一种优雅的方式,而无需关闭服务器.
如果没有AppDomains,我们如何在长时间运行的服务器进程中替换我们的程序集?
AppDomains还为我们提供了一种隔离服务器代码不同部分的方法.比如,自定义websocket服务器可以在主appdomain中具有套接字代码,而我们的服务在辅助appdomain中运行.
如果没有AppDomains,则无法使用上述方案.
我可以看到一个论点,可能会讨论使用VM的云概念来处理程序集更改而不必承担AppDomains的开销.但这是微软的想法或说法吗?或者他们有针对上述情况的具体原因和替代方案?
ASP.NET Core Web(.NET Core)与ASP.NET Core Web(.NET Framework)之间有什么区别?
已尝试升级到visual studio 2017 v 15.6.0的专业版(预览7.0)
并安装了aspnetcore-runtime-2.1.0-preview1-final-win-x64和.net core SDK 2.1.4.
当我创建一个新的Web应用程序时,我收到一个错误说
"目前的.NET SDK不支持.NET Core 2.1.目标是.NET Core 2.0或更低版本,或者使用支持.NET Core 2.1的.NET SDK版本."
当我尝试构建现有项目时,我收到错误
"目前的.NET SDK不支持.NET Core 2.1.目标是.NET Core 2.0或更低版本,或者使用支持.NET Core 2.1的.NET SDK版本."
我在目标框架中没有看到".net core 2.1"
我的计算机中没有global.json文件
当我尝试dotnet --info时,我明白了
c:\ source\dnacloud\testapp> dotnet --info .NET命令行工具(2.1.100)
Run Code Online (Sandbox Code Playgroud)Product Information: Version: 2.1.100 Commit SHA-1 hash: b9e74c6 Runtime Environment: OS Name: Windows OS Version: 10.0.16299 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.1.100\ Microsoft .NET Core Shared Framework Host Version : 2.0.5 Build : 17373eb129b3b05aa18ece963f8795d65ef8ea54
我按照说明创建了新的.NET Core项目并从cmd运行:
dotnet new
dotnet restore
Run Code Online (Sandbox Code Playgroud)
第二个语句创建project.lock.json
包含大量垃圾(不是真正的垃圾,而是大量的依赖,配置等).我假设这些依赖项是.NET框架,它被分解为单独的NuGet包.
我的问题:
我注意到NuGet最近添加了对与.NET Core相关的几个新TFM的支持,包括:
netstandard
(1.0-1.5)netstandardapp
(1.5)netcoreapp
(1.0)据我所知,netstandard
.NET Core相当于便携式配置文件; 它允许您使用单个名字对象来定位多个平台,而不是明确地拼写出您支持的每个平台,例如portable-net45+netcore45+wp81
.
同时,根据这个文档 netstandardapp
更像是.NET Core中的控制台应用程序; 它代表任何.NET Core运行时(例如CoreCLR,CoreRT).
那究竟netcoreapp
应该是什么?我在这里找到了它的跟踪问题,其中包括底部的评论,有点解释了区别是什么,但我没有得到它们之间的区别
NETStandard.Library + app主机
和
.NET Core基础安装
是.有人可以向我解释一下吗?
我正在尝试设置一个新的工作空间,并将我的所有项目从旧计算机转移到新计算机.但是,当我尝试运行IIS Express时出现此错误:
无法启动进程C:\ Program Files\dotnet\dotnet.exe.Web服务器请求失败,状态码为500.
我在Visual Studio 2015中工作,更新3,我使用的是.NET Core RC2.有没有人知道如何解决这个问题并让我的旧项目在这台新机器上运行?
我的应用程序被移植到.NET核心将使用新的EF核心与SQLite.我想在首次运行应用程序时自动创建数据库和表结构.根据EF核心文档,这是使用手动命令完成的
dotnet ef migrations add MyFirstMigration
dotnet ef database update
Run Code Online (Sandbox Code Playgroud)
但是,我不希望最终用户输入这些命令,并且希望让应用程序创建并设置数据库以供首次使用.对于EF 6,有类似的功能
Database.SetInitializer(new CreateDatabaseIfNotExists<MyContext>());
Run Code Online (Sandbox Code Playgroud)
但在EF Core中,这些似乎并不存在.我找不到任何关于EF核心等效的示例或文档,并且在EF核心文档的缺失功能列表中没有提到.我已经设置了模型类,所以我可以编写一些代码来基于模型初始化数据库,但如果框架自动执行此操作,则会更容易.我不想自动构建模型或迁移,只需在新数据库上创建表结构.
我在这里遗漏了什么或者在EF核心中缺少自动创建表功能吗?
.net-core ×10
.net ×6
c# ×4
asp.net-core ×3
appdomain ×1
asp.net ×1
clr ×1
csproj ×1
msbuild ×1
nuget ×1
package.json ×1
project.json ×1
sqlite ×1