草庐IT

msbuild-15

全部标签

c# - MSBuild 正在用旧版本替换 Newtonsoft.Json.dll

我正在使用TeamCity中的MSBuild运行程序来构建ASP.netWebAPI并运行单元测试。一切正常,直到我升级到“MicrosoftBuildTools201715.7.2”。msbuild突然从“C:\ProgramFiles(x86)\ISS\MicrosoftWebDeployV3”或“C:\ProgramFiles\ISS”复制旧版本的Newtonsoft.Json.dll(版本6.0.4.17603)\MicrosoftWebDeployV3”在构建解决方案时添加到输出文件夹。所有项目都使用NuGet引用9.0.1版本。在构建运行时监视输出文件夹,我可以看到.dll

c# - 如何强制 MSBuild 在不重新编译的情况下运行代码分析

默认情况下,代码分析仅针对已编译的项目进行。因此,当我从命令行运行MSBuild时,它仅在第一次运行代码分析。在后续调用中,将跳过代码分析。背景:我想评估CA规则,看看在启用规则时我们的代码中会有多少警告。为此,我不想重新编译所有内容——这需要一些时间——只是重新运行代码分析。你如何才能做到这一点?我正在使用VisualStudio2013和MSBuild12.0。即使明确打开代码分析也无济于事:msbuildDesktopBuild.proj/p:RunCodeAnalysis=true 最佳答案 好像是del/s*.lastco

c# - mscorlib 4.x 和 mscorlib 2.x 之间的 MSBuild 冲突

我最近正在调查一个构建失败,看到一条关于程序集之间冲突的警告。我深入挖掘,MSBuild告诉我:Therewasaconflictbetween"mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"and"mscorlib,Version=2.0.5.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e,Retargetable=Yes"."mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToke

c# - 以编程方式构建 msbuild 15 项目

我正在尝试构建一个使用VS2017创建的简单C#7类库项目。框架程序集中的MSBuild已过时,因此我引用了Microsoft.Build、Microsoft.Build.Engine和Microsoft.Build.Framework来自visualstudio中的MSBuild文件夹(C:\ProgramFiles(x86)\MicrosoftVisualStudio\2017\Community\MSBuild\15.0\Bin)。不过,当我这样做时:using(varcollection=newProjectCollection()){varproj=collection.Lo

c# - MSBuild 未处理的异常 : The FileName property should not be a directory unless UseShellExecute is set

版本dotnet核心SDK:2.1.403docker:18.09.7Linux内核:5.0.0-27Ubuntu:18.04.3问题我正在docker中运行一个ASP.NETCore项目。当我docker-composeup时,我得到以下信息:UnhandledException:Microsoft.Build.BackEnd.NodeFailedToLaunchException:TheFileNamepropertyshouldnotbeadirectoryunlessUseShellExecuteisset.--->System.ComponentModel.Win32Exce

c# - 如何在 .csproj 文件中使用 MSBuild 条件测试编译器指令?

我对.csproj文件中的函数和条件完全陌生,因此非常感谢您的帮助。我想做的是检查当前配置中的特定编译器指令。一个示例如下所示:......我不知道这是否可能。如果有更好的方法来做我要问的事情,也请告诉我。无论哪种方式,我都想测试配置的独立条件。编辑我真正想要的是一个我可以轻松编辑的值,最好是在VisualStudio中,我还可以不考虑配置检查。我想到了编译器常量,因为您可以在VS的项目属性中轻松更改它们。 最佳答案 编译器常量被设置到属性“DefineConstants”中,因此您应该能够评估该属性。您的Choose语句需要在定义

c# - nunit 测试仅在作为 tfs msbuild 进程的一部分运行时抛出异常

我正在使用TFS2012从VisualStudio2015构建和部署解决方案,没有任何问题。我决定将我的单元测试作为构建过程先决条件的一部分。独立于msbuild进程,单元测试运行没有问题并成功;但是,当我将它们合并为构建过程的一部分时,我在构建中遇到以下异常:ExceptionNUnit.Core.UnsupportedFrameworkException,ExceptionthrownexecutingtestsinD:\Builds\4\PA1111CE\Dev1111dBus\bin\mmmTests.dllNotestisavailableinD:\Builds\4\PA11

c# - MSBuild 找不到引用

我目前正在尝试弄清楚为什么MSBuild无法编译我们的单元测试dll之一。该问题仅出现在该DLL中,而不会出现在其他单元测试项目中。这是构建失败时我从TeamCity收到的输出:[10:38:55]:NAntoutput:[10:38:55]:[exec][10:38:55]:[exec][10:38:55]:[exec]"C:\Robinson\trunk\Projects\Robinson\Robinson.sln"(defaulttarget)(1)->[10:38:55]:[exec]"C:\Robinson\trunk\Projects\Robinson\TenForceEx

c# - Roslyn 与 MsBuild 有何关系?

我想知道:Roslyn与MsBuild到底有什么关系?我的理解是Roslyn是一个编译引擎MsBuild主要是一组关于如何设置项目的规范向上-即基本上是.csproj、.sln文件和等等。然后,MsBuild还附带一个msbuild.exe-如果我错了请纠正我,它能够实际编译项目。但是,假设msbuild.exe可以编译项目,但Roslyn也可以,这将如何与Roslyn联系起来?如果是MSBuild15,msbuild.exe是否使用Roslyn进行编译?他们是完全分开的吗?我是不是误会了什么?而且更具体地说:假设我想以编程方式创建简单的.csproj文件,并使用Roslyn的MSBu

c# - MSBuild 内联任务 - 引用非标准 Microsoft 程序集

我正在使用新的MSBuild内联任务来利用Microsoft.Web.Publishing.Tasks.dll程序集中的TransformXml(XDT转换)。这是我的任务(截图)的样子:...这可以很好地编译并加载DLL,但是,当它执行时失败,因为它试图在appbase路径中找到程序集,该路径是:C:\Windows\Microsoft.NET\Framework\v4.0.30319。我本以为它会看我给它的路径。Fusion日志显示:===Pre-bindstateinformation===\rLOG:User=xxx\Kamran\rLOG:DisplayName=Micros