我无法找到任何关于此的文档 - 来自Microsoft.Bcl.Build Nuget页面的链接没有提供太多帮助:
此包提供构建基础结构组件,以便可以成功构建引用特定Microsoft包的项目.
除非您收到指示您添加引用的构建警告,否则不要直接引用此包.
从查看Microsoft.Bcl.Build.targets文件看,它看起来像管理绑定重定向和包引用.看起来某些功能仅在Visual Studio中运行时使用.
任何人都可以提供有关此软件包的更多信息吗? 这对我们的构建服务器环境来说很痛苦,完全从源代码构建时可以忽略它(例如构建服务器环境)吗?
我一直无法找到合理的实现,JsonConvert.WriteJson这允许我在序列化特定类型时插入JSON属性.我的所有尝试都导致"JsonSerializationException:使用类型XXX检测到自引用循环".
关于我正在尝试解决的问题的更多背景:我使用JSON作为配置文件格式,我使用a JsonConverter来控制我的配置类型的类型解析,序列化和反序列化.$type我想使用更有意义的JSON值来解决正确的类型,而不是使用属性.
在我的简化示例中,这是一些JSON文本:
{
"Target": "B",
"Id": "foo"
}
Run Code Online (Sandbox Code Playgroud)
其中JSON属性"Target": "B"用于确定此对象应序列化为类型B.考虑到这个简单的例子,这种设计似乎并不那么引人注目,但它确实使配置文件格式更加有用.
我还希望配置文件是可循环访问的.我有反序列化的工作,我无法工作的是序列化案例.
我的问题的根源是我找不到JsonConverter.WriteJson使用标准JSON序列化逻辑的实现,并且不会抛出"自引用循环"异常.这是我的实现:
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
JProperty typeHintProperty = TypeHintPropertyForType(value.GetType());
//BUG: JsonSerializationException : Self referencing loop detected with type 'B'. Path ''.
// Same error occurs whether I use the serializer parameter or a separate serializer.
JObject jo = JObject.FromObject(value, serializer);
if (typeHintProperty != null)
{
jo.AddFirst(typeHintProperty);
}
writer.WriteToken(jo.CreateReader());
}
Run Code Online (Sandbox Code Playgroud)
在我看来,这是Json.NET中的一个错误,因为应该有办法做到这一点.不幸的是 …
我希望能够在Visual Studio Code中调试单元测试,但到目前为止它已经是一个混合包.
我的设置:
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug tests",
"type": "chrome",
"request": "attach",
"port": 9222,
"sourceMaps": true,
"webRoot": "${workspaceRoot}"
}
]
}
Run Code Online (Sandbox Code Playgroud)
karma.config.js
customLaunchers: {
Chrome_with_debugging: {
base: 'Chrome',
flags: ['--remote-debugging-port=9222']
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎在某种程度上起作用,如果我启动VS Code调试器它似乎附加(底栏变为橙色).如果我做出改变,Karma也会启动和调试器 - 但它总是暂停zone.js(顺便说一下这是一个Angular项目)而不会干扰我:
如果我点击"继续"它实际上击中了我的断点
我可以检查一些变量,但不是全部,
例如,我看不到actual传递给Jasmine expect方法的值.
所以a)为什么调试器总是在内部暂停zone.js- 测试的代码来自Redux reducer并在任何Angular上下文之外调用,以及b)我无法检查局部变量(这是一个showstopper)马上)?
在ASP.NET Core Web应用程序中使用Swashbuckle.AspNetCore,我们具有以下响应类型:
public class DateRange
{
[JsonConverter(typeof(IsoDateConverter))]
public DateTime StartDate {get; set;}
[JsonConverter(typeof(IsoDateConverter))]
public DateTime EndDate {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
当使用Swashbuckle发出不拘一格的API JSON时,它将变为:
{ ...
"DateRange": {
"type": "object",
"properties": {
"startDate": {
"format": "date-time",
"type": "string"
},
"endDate": {
"format": "date-time",
"type": "string"
}
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
这里的问题在于这DateTime是一个值类型,并且永远不能为null。但发出的Swagger API JSON不会将2个属性标记为required。所有其他值类型的行为相同:int,long,byte等-它们都被视为可选值。
为了完成图片,我们将Swagger API JSON馈送到dtsgenerator来为JSON响应模式生成Typescript接口。例如,上面的类变为:
export interface DateRange {
startDate?: string; // date-time
endDate?: string; // date-time
}
Run Code Online (Sandbox Code Playgroud)
这显然是不正确的。在深入研究这一点之后,我得出结论,dtsgenerator在使不需要的属性在打字稿中可为空方面做了正确的事情。也许摇摇欲坠的规范需要对nullable vs required的明确支持,但是现在将2混为一谈。
我知道我可以[Required] …
我在Karma中运行了typescript代码和typescript jasmine测试.我可以从命令行运行测试(使用Karma),也可以从ReSharper测试运行器运行测试.据推测,我也可以使用Karma Test Adapter VS扩展或VS适配器为Karma运行测试.因此,有很多运行测试的选项.
我的问题是:如何在VS调试器中调试测试?
此调用DacServices.Deploy一直适用于SQL Server LocalDB 2014,但在安装SQL Server LocalDB 2016时失败:
string dacConnectionString = $"Server=(localdb)\\mssqllocaldb; Integrated Security=true; database={DatabaseName}";
var dacServices = new DacServices(dacConnectionString);
dacServices.Message += (sender, args) => Console.WriteLine($"{args.Message.Prefix}: {args.Message.Message}"); // Log dacpac deploy messages
dacServices.Deploy(LoadDacPac(), DatabaseName, true, new DacDeployOptions()
{
BlockOnPossibleDataLoss = false
});
Run Code Online (Sandbox Code Playgroud)
DacServices.DeployLocalDB 2016 抛出的异常是:
Microsoft.SqlServer.Dac.DacServicesException was unhandled by user code
HResult=-2146233088
Message=Could not deploy package.
Source=Microsoft.SqlServer.Dac
StackTrace:
at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)
at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancellationToken)
at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, CancellationToken …Run Code Online (Sandbox Code Playgroud) 对于构建服务器,我们需要为Visual Studio 2017无头安装SQL Server数据工具.
我们的构建服务器已经拥有"Visual Studio 2017的构建工具",它为无头构建提供了很好的支持.但是由于缺少MSBuild目标,任何SSDT项目的解决方案都会失败,例如:
[MSBuild] src\Database\Upfront.Database.sqlproj: Build default targets
[10:27:46][src\Database\Upfront.Database.sqlproj] E:\BuildAgent\work\7769fbf76d8b9008\src\Database\Upfront.Database.sqlproj(56, 3): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
首先,我尝试修改"Build Studio for Visual Studio 2017"安装的组件集,但似乎没有可用的SSDT组件.
其次,我尝试为Visual Studio 2017安装SSDT,它似乎没有正确安装到"VS 2017构建工具"配置文件中.它允许我创建一个新的VS 2017配置文件,例如SQL,因此安装了所需的MSBuild文件C:\Program Files (x86)\Microsoft Visual Studio\2017\SQL\; 但是它改变了我的msbuild环境变量,因此C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools找不到"Build Tools for VS 2017"文件(其中),导致C#项目无法构建.
似乎"用于Visual Studio 2017的SSDT"和"用于Visual …
Visual Studio 中的旧样式/.NET Framework webapps 有一个可以自定义的发布管道。例如,Parameters.xml可以指定一个文件,如下所示:
<PropertyGroup>
<WebAppPackageConfigDir Condition=" '$(WebAppPackageConfigDir)' == '' ">$(MSBuildProjectDirectory)\Package</WebAppPackageConfigDir>
<ProjectParametersXMLFile>$(WebAppPackageConfigDir)\Parameters.xml</ProjectParametersXMLFile>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
以便在构建 MSDeploy 包时,将其中定义的MSDeploy 参数合并到包中。Web 处理管道(主要在 中定义C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets)支持以多种方式自定义 MSDeploy 包 - 例如,包参数可以在文件或 MSBuild 中定义<ItemGroup>。
在 SDK 样式的 webapps(例如 ASP.NET Core webapps)中,使用一个“新的”发布管道,例如C\Program Files\dotnet\sdk\2.1.2\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Publish.targets. 这会根据<PublishProtocol>值引入额外的目标文件,例如C\Program Files\dotnet\sdk\2.1.2\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targetsforPublishProtocol=MSDeploy或.\Microsoft.NET.Sdk.Publish.MSDeployPackage.targetsfor PublishProtocol=MSDeployPackage。这两个文件都将_CreateParametersFiles目标定义为:
<!--
***********************************************************************************************
TARGET : _CreateParameterFiles
***********************************************************************************************
-->
<Target Name="_CreateParameterFiles">
<ItemGroup>
<MsDeployDeclareParameters Remove="@(MsDeployDeclareParameters)" />
<MsDeployDeclareParameters Include="IIS Web Application …Run Code Online (Sandbox Code Playgroud) msdeploy webdeploy msbuild-wpp visual-studio-2017 asp.net-core-2.0
我在 Ubuntu 16.04 托管的构建代理上有一个在 Azure DevOps 中运行的构建。我正在使用最新版本的“Azure Powershell”任务(版本 4.* 预览版),它应该是多平台的,支持 Powershell 核心,并支持使用Azure Powershell Az 模块。
但是,它并不完全有效。在运行我的任何脚本之前,它会出错:
##[section]Starting: Azure PowerShell script: InlineScript
==============================================================================
Task : Azure PowerShell
Description : Run a PowerShell script within an Azure environment
Version : 4.0.0
Author : Microsoft Corporation
Help : [More Information](https://go.microsoft.com/fwlink/?LinkID=613749)
==============================================================================
##[warning]Can\'t find loc string for key: GeneratingScript
GeneratingScript
[command]/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command . '/home/vsts/work/_temp/e66222aa-283d-4dfd-b5c1-f1d2a4a3ba9f.ps1'
Could not find the module Az.Accounts with given version. If the module was …Run Code Online (Sandbox Code Playgroud) c# ×2
karma-runner ×2
.net ×1
.net-4.5 ×1
asp.net-core ×1
azure-devops ×1
dac ×1
debugging ×1
json.net ×1
localdb ×1
msbuild-wpp ×1
msdeploy ×1
nuget ×1
swagger ×1
swashbuckle ×1
webdeploy ×1