c# - 如何为 ASP.NET Core / Angular Web 应用程序创建安装程序?
问题描述
我们创建了一个“本地”网络应用程序,我的任务是为该应用程序创建一个安装程序,以编程方式允许用户在 SQLite 或 SQL Server 实现之间进行选择。我对如何做到这一点零线索,也没有找到任何有明确方向的好文章。
我所做的就是在我的文件中编写以下代码,以在我的Startup.cs
文件中的两个连接字符串之间进行选择appsettings.json
。有谁知道创建/实现安装程序的最佳方法?这种事情有开源解决方案吗?我对这个感到很失落......
protected virtual IServiceCollection ConfigureDbContext(IServiceCollection services)
{
var isSqlServerConnection = Configuration.GetValue<bool>("UseSql");
if (isSqlServerConnection)
{
services.AddDbContext<SecurityDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("Default")).UseQueryTrackingBehavior(QueryTrackingBehavior.TrackAll),
ServiceLifetime.Transient);
services.AddDbContext<StorageContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("Default")).UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking),
ServiceLifetime.Transient);
}
else
{
services.AddDbContext<SecurityDbContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("Sqlite")).UseQueryTrackingBehavior(QueryTrackingBehavior.TrackAll),
ServiceLifetime.Transient);
services.AddDbContext<StorageContext>(options =>
options.UseSqlite(Configuration.GetConnectionString("Sqlite")).UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking)
, ServiceLifetime.Transient);
}
return services;
}
解决方案
使用 Visual Studio 创建安装程序
- 关闭除一个 Visual Studio 实例之外的所有实例。
- 在正在运行的实例中,访问菜单工具->扩展和更新。
- 在该对话框中,选择 Online->Visual Studio Marketplace->Tools->Setup & Deployment。
- 从出现的列表中,选择 Microsoft Visual Studio 2017 安装程序项目。
- 安装后,关闭并重新启动 Visual Studio。转到 File->New Project 并搜索单词 Installer。如果您看到如下所示的列表,您将知道您安装了正确的模板:
- 使用安装项目创建安装程序以满足您的需求。您可以轻松地在安装程序上创建一个页面,用户选择 SQLite 或 SQL Server 作为支持的数据。
以下是有关创建安装程序和您需要的扩展的一些附加资源。根据您的 Visual Studio 版本,您可能需要另一个版本的扩展。
https://www.add-in-express.com/docs/net-msi-setup-project.php
推荐阅读
- java - TreeMaps 会自动对键进行排序吗?
- javascript - 无法访问 Immutable.js 映射的属性
- elastic-stack - 基于监视器关闭/恢复的电子邮件警报
- ios - IBeacon 后台监控
- encryption - 如何使用明文密钥加密加密 webm 媒体(特别是音频)文件并获取密钥和密钥 ID
- python - 在python中检查JSON请求是否与以前的请求不同(数据已更新)
- .htaccess - 无重定向的 URL 重写
- python - RLlib 改变观察的形状,将 [None] 添加到形状元组
- excel - 最后一行不同的工作表和复制粘贴
- swift - TLS CA 证书 SSL Pinning 使用 SWIFT-NIO-SSL