我有一个Visual Studio项目,它取决于我们公司的feed提供的一些NuGet包.可以从网上访问该Feed.该项目存储在Git存储库中的Visual Studio Online中.但那些NuGet包不是!我想使用VSO的自动构建和持续集成功能.我如何"告诉"VSO不应该从nuget.org下载那些NuGet包,应该从www.example.com获取?有办法吗?
我有一个 OpenAPI 3.0 架构 YAML 文档,它定义了一些带有所有必需参数和响应的 API 端点。
现在,我想生成一些样板服务器端代码:控制器及其方法。我的 API 将使用 ASP.NET Core 2 编写。那么,是否可以使用某种生成器,还是应该手动执行?
PS我知道我可以生成客户端代码,但我现在不需要它......
code-generation asp.net-core openapi swagger-codegen asp.net-core-2.0
我有一个Windows服务,在系统帐户下运行,并不时执行一些程序(是的,是的,我知道这是一个不好的做法,但这不是我的决定).我需要设置"与桌面交互"检查,以便在安装服务后查看已执行程序的gui.我尝试了几种方法,将下面的代码放在我的服务安装程序的AfterInstall或OnCommited事件处理程序中:
ConnectionOptions coOptions = new ConnectionOptions();
coOptions.Impersonation = ImpersonationLevel.Impersonate;
ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions);
mgmtScope.Connect();
ManagementObject wmiService = new ManagementObject("Win32_Service.Name='" + ServiceMonitorInstaller.ServiceName + "'");
ManagementBaseObject InParam = wmiService.GetMethodParameters("Change");
InParam["DesktopInteract"] = true;
ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", InParam, null);
Run Code Online (Sandbox Code Playgroud)
要么
RegistryKey ckey = Registry.LocalMachine.OpenSubKey(
@"SYSTEM\CurrentControlSet\Services\WindowsService1", true);
if(ckey != null)
{
if(ckey.GetValue("Type") != null)
{
ckey.SetValue("Type", ((int)ckey.GetValue("Type") | 256));
}
}
Run Code Online (Sandbox Code Playgroud)
这两种方法都"有效".他们设置了支票,但是在我启动服务之后启动了exe - 并且没有显示gui!所以,如果我停止服务,重新检查并再次启动它 - 宾果游戏!一切都开始并显示出来.实现结果的第二种方法是重新启动 - 之后还会显示gui.
所以问题是:是否有正确的方法来设置"与桌面交互"检查,所以它将开始工作而无需重新检查和重新启动?
操作系统:Windows XP(尚未试过Vista和7 ......)
我有一个安装了Hangfire.Core和Hangfire.SqlServer软件包的简单.NET 4.5控制台应用程序.
在我的主要方法中,我将这样的后台作业排入队列:
BackgroundJob.Enqueue<Test>((t) => Console.WriteLine(t.Sum(3,4)));
Run Code Online (Sandbox Code Playgroud)
我的Test类看起来像这样:
public class Test
{
public Test(){ }
public int Sum(int a, int b)
{
return a + b;
}
}
Run Code Online (Sandbox Code Playgroud)
当我F5我的程序时,我在Enqueue的行上得到一个例外:
"System.Core.dll中发生了'System.InvalidOperationException'类型的未处理异常附加信息:从范围''引用的'HangfireTest.Test'类型的变量't',但未定义"
当我用"new"在代码中创建我的Test类并使用非泛型Enqueue方法时 - 一切正常:
BackgroundJob.Enqueue(() => Console.WriteLine(new Test().Sum(3,4)));
Run Code Online (Sandbox Code Playgroud)
但我需要一个通用的,因为我想创建一个接口ITest并使用依赖注入来做这样的事情:
BackgroundJob.Enqueue<ITest>((t) => Console.WriteLine(t.Sum(3,4)));
Run Code Online (Sandbox Code Playgroud)
那么,我在这里做错了什么?
我正在尝试使用他们的 nuget 包从 Youtube 上的一些视频下载字幕。这是一些代码:
var request = _youtube.Search.List("snippet,id");
request.Q = "Bill Gates";
request.MaxResults = 50;
request.Type = "video";
var results = request.Execute();
foreach (var result in results.Items)
{
var captionListRequest = _youtube.Captions.List("id,snippet", result.Id.VideoId);
var captionListResponse = captionListRequest.Execute();
var russianCaptions =
captionListResponse.Items.FirstOrDefault(c => c.Snippet.Language.ToLower() == "ru");
if (russianCaptions != null)
{
var downloadRequest = _youtube.Captions.Download(russianCaptions.Id);
downloadRequest.Tfmt = CaptionsResource.DownloadRequest.TfmtEnum.Srt;
var ms = new MemoryStream();
downloadRequest.Download(ms);
}
}
Run Code Online (Sandbox Code Playgroud)
当 Download 方法被调用时,我收到一个奇怪的 Newtonsoft.JSON 异常,它说:
Newtonsoft.Json.JsonReaderException: 'Unexpected character encountered while parsing value: T. Path …Run Code Online (Sandbox Code Playgroud) 我有一个安装到C:\ Windows\System32的Windows服务.它有一个通常的.config文件,其中存储了一些应用程序设置.我有另一个应用程序,它将一些值写入此配置.当我运行这个应用程序时,它会在此行引发异常
var config = ConfigurationManager.OpenExeConfiguration(serviceExePath);
例外情况说:加载配置文件时出错:参数'exePath'无效.参数名称:exePath
当我把我的Windows服务放到另一个文件夹时,一切都还可以!是因为某些访问违规规则还是类似的?有没有办法为我的服务使用System32文件夹并打开其配置?
操作系统:Windows 7 x64
c# ×4
.net ×1
asp.net-core ×1
azure-devops ×1
git ×1
hangfire ×1
nuget ×1
openapi ×1
service ×1
youtube-api ×1