我有一个用dotnet核心编写的测试项目.这需要以xml或html格式发布结果.有没有办法可以使用相同的命令将结果发布到特定目录? - result-directory对我不起作用
所以我觉得我已经走到了绳索的尽头,但希望有人比我在这里知道的更多。我有一些Typescript文件,尽管这几乎无关紧要,因为我的所有内容文件都存在此问题。
通过在我的项目中使用它,我能够生成一个nuget或更准确的dotnet packnuget 包,其中包含我的内容文件:.csprojparent
<ItemGroup>
<Content Include="Scripts\Utility.ts">
<Pack>true</Pack>
<PackagePath>contentFiles\Scripts\;content\Scripts</PackagePath>
</Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我可以浏览生成.nupkg的文件,并看到该文件确实已添加到包中的content\Scripts和contentFiles\Scripts位置
问题是,每当我在我的“子”项目中使用这个包时,它Typescript永远不会被复制到child项目的任何文件夹中,尽管我可以看到它在.nuget\packages\parent\...文件夹中被提取出来。
起初我认为这是我在parent项目中的初始设置的问题,它可能是,但是在尝试了本书中的所有内容后,无法将内容文件复制到child项目中。然后我尝试去尝试Init.ps1在tools我的包的文件夹中尝试使用的黑暗路径,虽然无法调试,但它似乎也偶尔运行(我完全卸载并重新安装了包,但它仍然无法运行大部分时间.) 这可能是方式,但我不知道为什么我不能把它输出到Package Manager Console......也许还有希望,Init.ps1但我似乎无法弄清楚。最后,我看到了nuget文件的一些潜力.targets但我似乎也能掌握如何将它用于我的目的!我希望得到一些关于如何完成这项工作的反馈。
我有一个构建管道,它在单个解决方案中构建多个库文件。在 YML 文件中,我有以下任务来打包 dll;
- task: DotNetCoreCLI@2
displayName: 'Create nuget packages'
inputs:
command: 'pack'
packagesToPack: 'Framework/**/*.csproj;!**/*.Test.csproj'
packDirectory: '$(Build.ArtifactStagingDirectory)/packages/nuget'
nobuild: true
versioningScheme: 'byBuildNumber'
Run Code Online (Sandbox Code Playgroud)
这会将我的所有库文件创建为单独的nupkg文件。我希望它们位于一个 nupkg 文件中。
这可以使用吗dotnet pack?
使用 dotnet pack 时,如何将变量传递给我的 nuspec 文件?
我正在尝试通过版本。这是nuspec:
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Required elements-->
<id>1</id>
<version>$PackageVersion$</version>
<description>1</description>
<authors>1</authors>
</metadata>
</package>
Run Code Online (Sandbox Code Playgroud)
这是我的命令:
dotnet.exe 包 /p:NuspecFile=./App.Nuspec /p:PackageVersion=9.7.28170
我收到错误: 值不能为空或空字符串。
有趣的是,如果我将变量更改为描述:
<version>1.1.0</version>
<description>$PackageVersion$</description>
Run Code Online (Sandbox Code Playgroud)
我收到错误:需要描述。
当标签是描述时,标签名称在错误消息中。但是,当标签是 version 时,错误消息中没有标签名称 - 只有术语值。两者都是必填字段。
我在本地机器上使用命令行执行此操作,但 TFS 构建给出了相同的错误。这是该步骤的附加构建属性的 TFS 工具提示。 指定以分号分隔的令牌 = 值对列表,其中 .nuspec 文件中每次出现的 $token$ 都将替换为给定的值。值可以是引号中的字符串。
听起来我正在遵守这些规则。这是 TFS 生成的内容:
"C:\Program Files\dotnet\dotnet.exe" 包 D:\Agent_work\5\s\MyProject\MyProject.csproj --output D:\Agent_work\5\a /p:NuspecFile=App.nuspec /p: PackageVersion=9.7.28170 --verbosity 正常
和我的命令一样。
我究竟做错了什么?
我们最近将 ASP.NET Core Web API 项目的日志记录框架从 log4net 更新为 NLog,当我们进行性能测试时,与 NLog 相比,NLog 的请求/秒速服务要少得多。下面是我的 NLog 配置文件。
请就使用 NLog 的性能问题提出任何想法。
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="info"
internalLogFile="C:\temp\internal-nlog.txt">
<!-- enable asp.net core layout renderers -->
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
<add assembly="SumoLogic.Logging.NLog"/>
</extensions>
<!-- the targets to write to -->
<targets>
<!-- write logs to console -->
<target xsi:type="ColoredConsole" name="allConsole" formatMessage="false" layout="${longdate}|${level:uppercase=true}|${message}" />
<target name="sumoLogic" type="SumoLogicTarget" formatMessage="false" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff} ${level}, ${message}${exception:format=tostring}${newline}">
<Url>#{Logging__SumoLogic__EndpointUrl}</Url>
<ConnectionTimeout>30000</ConnectionTimeout>
<SourceName>#{Logging__SumoLogic__SourceName}</SourceName>
<SourceCategory>#{Logging__SumoLogic__SourceCategory}</SourceCategory>
<UseConsoleLog>true</UseConsoleLog>
</target>
<target name="bufferedSumoLogic" type="BufferedSumoLogicTarget" formatMessage="false" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff} …Run Code Online (Sandbox Code Playgroud) 在开始之前,我必须声明我对这个 nuget 包还很陌生,所以先来了解一下我的基础知识。
我的应用程序有一个核心项目来携带一些 .dll 和 .sql 文件以及一个 api 项目。我已经将核心项目制作为带有dotnet pack 的nuget 包,并在 github 操作上将其自动化,因此它在所有prs上创建了一个新版本并将其推送到我的私人 nuget 服务器,直到这里一切都很好。
当我将这个核心包安装到我的api项目中时,也没有问题。它安装成功,我的 sql 文件按照我的预期显示在目标项目上(但作为链接源)。
但是当我尝试使用 dotnet pack 发布此项目时,.sql 文件不会复制到输出文件夹。我查看了文件的属性,发现它们的复制到输出目录属性已重置为不复制,并且文件路径是绝对的。
我的目标是使用 github 操作构建和部署此 api,因此绝对路径是不可接受的,此外我不想在目标项目中手动安排某些内容。
我正在用 dotnet pack 打包核心项目,但我没有
或其他类似的东西,我不知道如何使用它们。
我尝试添加到 csproj 文件<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>和<RestoreProjectStyle>PackageReference</RestoreProjectStyle>其他内容,但它们不起作用。
谁能帮我?