小编whi*_*rot的帖子

如何让 GitVersion /UpdateAssemblyInfo 与 ASP.NET Core 2.0 项目一起使用

我们已经使用 Bamboo 构建服务器有一段时间了,并且安装了 GitVersion,因此可以将其选为构建计划中的任务。运行任务时,我们通常使用 /UpdateAssembleInfo 参数。对于.NET Framework项目,这将使用bamboo版本控制设置更新源中的程序集信息文件,以便.NET程序集具有与我们的Bamboo构建和后续Bamboo部署相同的版本信息,从而使我们能够了解已部署项目的版本通过检查程序集文件属性来确定该字段。这一切都运作得很好。

但是,我们现在正在构建和部署 .NET Core 2.0 解决方案,并发现 GitVersion /UpdateAssemblyInfo 不起作用。

我搜索了 .NET Core 的修复程序,但只能找到涉及使用 project.json 文件的解决方案,该文件不再与 .NET Core 2.0 一起使用(它更改为 *.csproj 文件)。

我查看了http://gitversion.readthedocs.io/en/latest/usage/command-line/我尝试运行

gitversion.exe /UpdateAssemblyInfo MyProjectName.AssemblyInfo.cs /EnsureAssemblyInfo 
Run Code Online (Sandbox Code Playgroud)

其中 MyProjectName 表示 .NET Core 2.0 ..\\obj\release\netcoreapp2.0 文件夹中的 assemblyinfo.cs 文件的实际项目名称后缀。但它没有更新该文件。

我必须假设必须有一个将 GitVersion 与 Bamboo 和 .NET Core 2.0 一起使用的解决方案,但我很难找到一个解决方案。

有任何想法吗?

bamboo gitversion asp.net-core asp.net-core-2.0

8
推荐指数
1
解决办法
9201
查看次数

ASP.Net Core 2.1 应用程序在作为 Windows 服务运行时找不到 appsettings.json

我正在尝试将我的 ASP.Net Core 2.1 应用程序作为 Windows 10 上的服务运行。我的应用程序在使用 VS2017 运行时运行良好,或者如果我发布到一个文件夹,然后使用 --console 参数从该发布的文件夹中启动它。但是,如果我使用 sc create 创建服务,获得成功结果,然后尝试运行它,我会在 Windows 应用程序日志中收到一条错误消息,指出...

System.IO.FileNotFoundException: The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'C:\WINDOWS\system32\appsettings.json'.
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)   
Run Code Online (Sandbox Code Playgroud)

我已确认我的 appsettings.json 文件存在于已发布的文件夹中。该错误消息指出正在 C:\WINDOWS\system32\ 文件夹中查找 appsettings.json 文件,而不是应用程序 .exe 所在的已发布文件夹。这让我认为问题在于作为服务运行时当前目录的设置方式,但我无法准确确定它为什么不起作用。

我已按照此 Microsoft 文档中的说明设置了我的 Program.cs 。我的 program.cs 如下所示;

public class Program
{

    public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
        .AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"}.json", optional: true) …
Run Code Online (Sandbox Code Playgroud)

c# windows-services .net-core asp.net-core asp.net-core-2.1

8
推荐指数
3
解决办法
8350
查看次数

在 Blazor 服务器端如何检测用户是否尝试离开当前页面

我正在开发一个 ASP.NET Core 3.1 Blazor 服务器端应用程序,该应用程序具有带有 EditForm 的 Blazor 组件。我想警告用户,如果他们尝试导航离开页面(即单击浏览器后退按钮或选择导航菜单来加载同一应用程序中的另一个页面),他们有未保存的数据。

读过有关使用 javascript window.onbeforeunload 的帖子,但我不确定在 Blazor 服务器端调用 javascript 是否会扰乱 SignalR 连接。

我还阅读了有关使用 CircuitHandler 的帖子,但我不确定如果用户只是移动到同一应用程序中的不同页面,SignalR 电路是否会发生变化。

关于如何最好地处理这一要求有什么建议吗?

javascript signalr asp.net-core blazor blazor-server-side

8
推荐指数
1
解决办法
7767
查看次数

如何使用 Entity Framework Core 2.1 定义多字段索引

我正在研究 ASP.Net Core 2.1 API,我使用 Entity Framework Core 2.1。我正在使用迁移来管理对数据库的更改。我的后备数据存储是 Azure SQL Server 的一个实例。

我需要将多字段非聚集索引添加到我的一个表中,但我很难在我的 google 搜索中找到有关如何执行此操作的简明参考。

我尝试在 POCO 类中使用 [Index()] 数据注释,但无法识别。因此,我假设我必须在 DbContext 类的 OnModelCreating 方法中执行此操作,但我还没有找到有关如何为多字段非聚集索引执行此操作的示例。

这是一个示例实体类

public class H1Record : EntityBase
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long Id { get; set; }

    [ForeignKey("ShippingServicesFileId")]
    public ShippingServicesFile ShippingServicesFile { get; set; }

    [Required]
    public int ShippingServicesFileId { get; set; }

    [Column(TypeName = "varchar(20)")]
    public string BatchId { get; set; }

    [Column(TypeName = "varchar(34)")]
    [MaxLength(34)]
    public string ElectronicFileNumber { get; set; }

    [Column(TypeName = …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework-core .net-core asp.net-core-2.0

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