草庐IT

msbuild-task

全部标签

c# - 如何通过命令提示符调用 MSBuild?

我有一个网站(不是Web应用程序),我想每晚从同一目录中的命令提示符发布它。我不想使用TeamCity、TFS等构建自动化工具或Nant等第三方工具-它应该使用MSBuild来完成。我该怎么做?更新:在发布窗口中,唯一应该选中的选项是UseFixednamingandsinglepageassembly。 最佳答案 根据您的评论,您的Web项目是网站项目而不是Web应用程序项目。在这种情况下,“发布”目标不能作为选项,但“AspNetCompiler”是解决方案。创建一个包含以下内容的xml文件并从MSBuild调用它。此任务的引用

c# - 如何将条件编译符号 (DefineConstants) 传递给 msbuild

所以,this和this很清楚。只需传递/p:DefineConstants="SYMBOL"它对我根本不起作用,即使在测试项目中也是如此。我期望传递/p:DefineConstants="SYMBOL"将覆盖csproj中定义的任何条件编译常量。然而事实并非如此......完整代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceDefineConstants{classProgram{staticvoidMain(string[]args){#ifDEV

c# - 捕获 TaskCanceledException 并检查 Task.Canceled 是个好主意吗?

我的团队中有一些人非常喜欢使用异步Task进行编码。有时他们喜欢使用CancellationToken参数。我不确定的是我们作为一个团队是否应该使用这种代码风格(A):asyncTaskDoStuff(CancellationTokent){while(!t.IsCanceled){try{Task.Delay(5000,t);}catch(AggregateExceptione)//orisitTaskCanceledExceptionorOperationCanceledException?Idon'tknow?:){}//pollsomething,returnsomeObjec

c# - 添加在 Visual Studio 2017 RC 中构建 .NET Core 项目后运行的 msbuild 任务

在VisualStudio2017RC中使用.NETCore的msbuild中是否有类似AfterBuildTarget的东西?我尝试将以下片段添加到.csproj文件中,但它在构建过程中没有执行(与它工作的VS2015相反)。另一个有趣的发现:我认为AfterBuild目标可能已被删除-运行msbuild/t:AfterBuild似乎没有调用添加的目标。如果我将目标重命名为“测试”,则用msbuild/t:Test调用它它工作得很好。此外,是否有关于VisualStudio2017RC附带的msbuild版本(可能还有.NETCore构建脚本)的文档? 最

c# - 预构建 MSBuild 任务以更新与构建的 exe 不同步的 AssemblyInfo

我在调用msbuild的VisualStudio2008中使用预构建任务:C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe$(MSBuildProjectDirectory)\version.targets/p:Configuration=$(ConfigurationName)在version.targets中,我正在更新AssemblyInfo.cs文件以替换版本信息:当我通过VisualStudio2008构建项目时,它的构建没有任何问题。但是当我查看生成的exe的版本信息时,它包含以前的时间戳,即使AssemblyInfo.

c# - Task.Run 和 UI 进度更新

此代码片段来自StephenCleary'sblog并举例说明如何在使用Task.Run时报告进度。我想知道为什么更新UI没有跨线程问题,我的意思是为什么不需要调用?privateasyncvoidbutton2_Click(objectsender,EventArgse){varprogressHandler=newProgress(value=>{label2.Text=value;});varprogress=progressHandlerasIProgress;awaitTask.Run(()=>{for(inti=0;i!=100;++i){if(progress!=null

c# - 如何访问 Task.Factory.StartNew 中的 HttpContext.Current?

我想在我的asp.net应用程序中访问HttpContext.CurrentTask.Factory.Start(()=>{//HttpContext.Currentisnullhere});我该如何修复这个错误? 最佳答案 Task.Factory.Start将启动一个新的Thread并且因为HttpContext.Context是线程的本地它不会会被自动复制到新的Thread,所以需要手动传递:vartask=Task.Factory.StartNew(state=>{varcontext=(HttpContext)state;

c# - 在 MSBuild 中禁用发布

我有一个用C#编写并在VisualStudio中构建的应用程序。有一天,我正在探索项目属性部分中的“发布”选项卡,只是为了看看它做了什么。现在,每次我构建我的应用程序时,我都会得到一大堆与ClickOnce安装程序(*.application、*.deploy等)相关的文件,这些文件我真的不再需要了。我如何在构建项目时禁用或以其他方式阻止这些项目出现? 最佳答案 我通过取消选中“签名”选项卡中的“签署ClickOncelist”以及“安全”选项卡中的“启用ClickOnce安全设置”解决了这个问题。

c# - 以编程方式运行 MSBuild

我正在尝试以编程方式执行MSBuild,但无法执行以下命令:stringcommand=string.Format(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe""{0}\{1}.csproj""",_args.ProjectPath,_args.ProjectName);字符串呈现为:C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"C:\...\TestResults\Foo2011-08-3116_29_40\Out\Foo\solution

c# - 如何从命令行 (msbuild) 使用 C# 7 代码构建 .csproj

我在我的项目中使用了一些C#7特性:staticvoidMain(string[]args){}publicbyteContainerVersion{get=>1;privateset=>thrownewNotImplementedException();}它在visualstudio2017中构建良好,但在使用旧msbuild(v14.0C:\ProgramFiles(x86)\MSBuild\14.0\Bin\msbuid.exe)时我的CI代理出现错误consoleApplication.csproj.):错误CS1513:}预期。 最佳答案