我试图让 Jenkins 将最新代码从 github 分支部署到我的应用程序服务器。然而,当我推送到我的发布分支时,最新的提交代码不会被部署。詹金斯似乎部署了我的一些旧提交。当我打印时,Branch_Name我Git_Commit得到了正确的分支和提交 ID,所以我不确定哪里出了问题。目前使用 Jenkins 2.319.2 服务器。
最新的 GitHub 提交代码被推送到 Jenkins Server WORKSPACE 目录,该目录如下所示:C:\Program Files (x86)\Jenkins\workspace\PROJ_release。在工作区目录中,我确认那里有最新的提交更改。Jenkins 服务器和部署到应用程序服务器之间的某个位置似乎没有获得最新的提交更改。
以下是我的詹金斯文件:
def url = ""
def branch = env.BRANCH_NAME
def msdeploy = 'C:\\Program Files (x86)\\IIS\\Microsoft Web Deploy V3'
if (branch == "master"|| branch == "release") {
node {
// get dontnet.exe reference
environment {
dotnet = 'C:\\Program Files\\dotnet\\sdk\\2.1.803\\dotnet.exe'
version = "${env.BUILD_NUMBER}"
}
// use nodejs 10.0.0 configured in global tools
env.NODEJS_HOME = "${tool 'NodeJS10.0.0'}"
env.PATH="${env.NODEJS_HOME};${env.PATH};"
stage("Clean Workspace"){ …Run Code Online (Sandbox Code Playgroud) 我设置了一个 .Net 6 Core Minimal API,以使用 SeriLog 登录到 MS SQL Server。在我的类库中,仅当我修改类库中的构造函数时,我才能够使用 SeriLog 进行日志记录。我试图避免修改类库类或方法的构造函数。
根据我使用控制台应用程序的经验,如果我在主 Program.cs 中设置 SeriLog,那么我可以在类库中的任何类中使用日志记录,而无需将记录器传递给构造函数。因此,我可以在类库中的任何位置使用 Log.Information("my message") 并且它可以工作。我试图在 .Net 6 最小 API 项目中使用我的 Program.cs 实现相同的目标。
我觉得通过查看有关该主题的其他问题应该可以做到。特别是这个,其中的答案指出:
您无需在类库中执行任何操作。只有主应用程序具有组合根(应用程序生命周期中可以设置对象图的最早点)。
因此,根据上面的内容,在我的 API Program.CS 中,我有以下代码(我已在注释中指出了哪些有效,哪些无效):
//Configure SeriLog
builder.Logging.ClearProviders();
var appSettings = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var logDB =
builder.Configuration.GetSection("ConnectionStrings:Default").Value;
var sinkOpts = new MSSqlServerSinkOptions { TableName = "Logs" };
var columnOptions = new ColumnOptions();
var logger = new LoggerConfiguration()
.MinimumLevel.Override("Microsoft",
Serilog.Events.LogEventLevel.Information)
.WriteTo.MSSqlServer(
connectionString: logDB,
sinkOptions: sinkOpts,
columnOptions: columnOptions,
appConfiguration: …Run Code Online (Sandbox Code Playgroud) 我正在使用电话依赖项receive_sms。它在模拟器中工作正常,我收到发送的每条消息,但它无法在真正的硬件手机上工作。
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:telephony/telephony.dart';
onBackgroundMessage(SmsMessage message) {
debugPrint("onBackgroundMessage called");
}
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _message = "";
final telephony = Telephony.instance;
@override
void initState() {
super.initState();
initPlatformState();
}
onMessage(SmsMessage message) async {
setState(() {
_message = message.body ?? "Error reading message body.";
});
}
onSendStatus(SendStatus status) {
setState(() {
_message = status == SendStatus.SENT ? "sent" : …Run Code Online (Sandbox Code Playgroud) 我querysnapshot从 Firestore 检索一个,它返回带有 snapshot.docs 的 querydocumentsnapshot 列表,但是当我尝试映射它时什么也没有发生。如果我使用for...in循环,它就可以完美工作。
QuerySnapshot snap =
await FirebaseFirestore.instance.collection('Products').doc(FirebaseAuth.instance.currentUser.uid).collection('ItemDetails').get();
print(snap.docs);//returns [Instance of 'QueryDocumentSnapshot', Instance of 'QueryDocumentSnapshot', Instance of 'QueryDocumentSnapshot']
for (var item in snap.docs.toList()) {//this executes perfectly
print(item.data());
}
snap.docs.toList().map((e) => print(e.data().toString()));//this won't execute
snap.docs.map((e) => print(e.data().toString()));//this won't execute
Run Code Online (Sandbox Code Playgroud)
为什么循环起作用.map()时不起作用for?
我的项目有一个 C++ dll,其中在 Sqllite 中创建一个数据库,共享拒绝=无。这个 dll 会将数据插入到数据库中,我有一个 C# .exe,它必须访问数据库并显示它。显示需要异步完成。在启动与 sqlitedb 的连接时,有什么方法可以锁定表或数据库吗?如果可能的话,任何人都可以给我链接或有关如何完成此操作的示例吗?提前致谢。