GVKun编程网logo

创建自定义 MSBuild 任务时如何从 C# 代码中获取当前项目目录?(c#获取项目的默认路径)

14

本文的目的是介绍创建自定义MSBuild任务时如何从C#代码中获取当前项目目录?的详细情况,特别关注c#获取项目的默认路径的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的

本文的目的是介绍创建自定义 MSBuild 任务时如何从 C# 代码中获取当前项目目录?的详细情况,特别关注c#获取项目的默认路径的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解创建自定义 MSBuild 任务时如何从 C# 代码中获取当前项目目录?的机会,同时也不会遗漏关于. net core sdk 的版本 3.0.100 至少需要 msbuild 的 16.3.0 版本。当前可用的 msbuild 版本为 16.1.76.45076。将在 global. js...、Asp.net Daily Build by MsBuild、asp.net-mvc – 将自定义属性添加到MSBuild任务、c# – 如何从msbuild获取构建日志?的知识。

本文目录一览:

创建自定义 MSBuild 任务时如何从 C# 代码中获取当前项目目录?(c#获取项目的默认路径)

创建自定义 MSBuild 任务时如何从 C# 代码中获取当前项目目录?(c#获取项目的默认路径)

我不想使用硬编码的路径运行外部程序,而是想获取当前的项目目录。我正在使用自定义任务中的进程调用外部程序。

我该怎么做?AppDomain.CurrentDomain.BaseDirectory 只是给了我 VS 2008 的位置。

答案1

小编典典

您可以尝试这两种方法之一。

string startupPath = System.IO.Directory.GetCurrentDirectory();string startupPath = Environment.CurrentDirectory;

告诉我,你觉得哪个更好

. net core sdk 的版本 3.0.100 至少需要 msbuild 的 16.3.0 版本。当前可用的 msbuild 版本为 16.1.76.45076。将在 global. js...

. net core sdk 的版本 3.0.100 至少需要 msbuild 的 16.3.0 版本。当前可用的 msbuild 版本为 16.1.76.45076。将在 global. js...

        vs2019在打开netcore项目时出现版本问题,如下图:

 

需要在global.json 增加如下红色标识部分,对应的版本即可

{
     “ sdk ”:{
         “版本”:“ 2.1.403 ” } “ msbuild-sdks ”:{  “ Microsoft.Build.Traversal ”: 16.1.76.45076  } }


 

Asp.net Daily Build by MsBuild

Asp.net Daily Build by MsBuild

:: 目录结构
:: +GW.Point.BLL --dir dll
:: +GW.Point.IBLL --dir dll
:: +GW.Point.DAL --dir dll
:: +GW.Point.IDAL --dir dll
:: +GW.Point.Model --dir dll
:: +GW.Point.Manager --dir web
:: -GW.Point.Web.csproj --file
:: +GW.Point.Web --dir web
:: -GW.Point.Web.csproj --file
:: -GWPoint.sln --file sln

@echo off

::获取文件名
set WebAppPath=%~n0
set WebAppName=%WebAppPath%\%~n0.csproj
::echo %WebAppName%
::部署路径
set DeployPath=%CD%\%WebAppPath%_deploy
::@pause

set path=C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
::set path=C:\WINDOWS\Microsoft.NET\Framework\v3.5
::set path=C:\WINDOWS\Microsoft.NET\Framework\v3.0
::set path=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
::set path=C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
::set path=C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705

::@echo %path%

echo Delete the %WebAppPath%_deploy directory!
@rd %WebAppPath%_deploy /s/q
@md %WebAppPath%_deploy

echo Building %WebAppName%, please wait a minute...

"%path%\MsBuild.exe" %WebAppName% /t:rebuild /p:configuration=Release /t:ResolveReferences;Compile;_CopyWebApplication /p:OutputPath=%DeployPath%\bin /p:WebProjectOutputDir=%DeployPath% >%WebAppPath%.log

echo Building %WebAppName% Complete! (%WebAppPath%.log)
::@pause

asp.net-mvc – 将自定义属性添加到MSBuild任务

asp.net-mvc – 将自定义属性添加到MSBuild任务

我让TeamCity为ASP.NET MVC 3应用程序运行MSBuild任务.现在每隔一段时间(看似随机)抛出“ASPNETCOMPILER:错误ASPRUNTIME:已经卸载了运行该线程的应用程序域.”它发生在MSBuild执行“MvcBuildViews”并运行aspnet_compiler.exe时.

现在我知道aspnet_compiler.exe(http://msdn.microsoft.com/en-us/library/ms229863(vs.80).aspx)有一个“-errorstack”开关可以给我关于这个错误的堆栈跟踪信息,但似乎AspNetCompiler Task没有暴露设置这个属性的可能性(http://msdn.microsoft.com/en-us/library/ms164291.aspx).

所以我的问题是 – 有没有办法将任何自定义属性传递给现有的MSBuild任务,或者我必须在MSBuild之外手动运行aspnet_compiler.exe以启用-errorstack功能?

解决方法

我们找到了这个错误的原因(但实际上并不是如何向MSBuild任务添加自定义属性).当构建服务器内存不足时,似乎发生了这种异常.

c# – 如何从msbuild获取构建日志?

c# – 如何从msbuild获取构建日志?

我正在使用下面的代码来编译我的蛋糕脚本项目,我想在文本文件中获取构建日志.

if(IsRunningOnWindows())
{

  // Use MSBuild
  foreach(string currenproject in projectslocation)
  {
  MSBuild(currenproject,new MSBuildSettings()
  .SetConfiguration(configuration)
  .SetVerbosity(Verbosity.Minimal));

  }

}

这可以创建构建日志文件吗?

解决方法

来到Cake的下一个版本(0.17.0)(希望我们在本周末发布)我们实现了这个 feature request,它允许使用一个新的扩展方法,允许你传入 MSBuildFileLogger.这个扩展方法将阻止进入ArgumentCustomization路由.

这应该允许你这样的事情:

MSBuild("./myproject.sln",new MSBuildSettings()
    .AddFileLogger(new MSBuildFileLogger {
        LogFile = "./errors.txt",MSBuildFileLoggerOutput = MSBuildFileLoggerOutput.ErrorsOnly   
});

你今天可以使用Cake的MyGet feed获得预发布的v0.17.0版本的Cake.

如果您使用nuget CLI来安装Cake,就像在default bootstrapper中一样,您将-Source https://www.myget.org/F/cake/api/v3/index.json添加到nuget install语句中.

然后:

>如果您使用package.config来固定Cake版本,请指定版本0.17.0-alpha0092或更高版本.>如果您只是使用Cake包ID安装,那么您只需添加-PreRelease,它将从Feed获取最新版本或指定-Version 0.17.0-alpha009参数.

今天关于创建自定义 MSBuild 任务时如何从 C# 代码中获取当前项目目录?c#获取项目的默认路径的分享就到这里,希望大家有所收获,若想了解更多关于. net core sdk 的版本 3.0.100 至少需要 msbuild 的 16.3.0 版本。当前可用的 msbuild 版本为 16.1.76.45076。将在 global. js...、Asp.net Daily Build by MsBuild、asp.net-mvc – 将自定义属性添加到MSBuild任务、c# – 如何从msbuild获取构建日志?等相关知识,可以在本站进行查询。

本文标签: