Questions tagged «msbuild»

Microsoft Build Engine,也称为MSBuild,是用于托管代码的构建平台,并且是.NET Framework的一部分。

5
生成后事件执行PowerShell
是否可以使用构建后事件设置.NET项目以执行Powershell脚本?我正在使用此脚本生成一些文件。 我还可以将它是调试版本还是发行版本传递给脚本。一个很好的例子。
85 c#  .net  powershell  msbuild 

7
在项目锥之外包括.csproj中的内容文件
我有一个C#项目,说MyProject.csproj位于“ C:\ Projects \ MyProject \”。我也有一些文件要复制到该项目的输出目录中。但是,文件位于“ C:\ MyContentFiles \”位置,即它们不在项目区域内。该目录也包含子目录。目录的内容不受管理。因此,我必须包括其下的所有内容。 当我将它们作为“内容”包含在项目中时,它们会被复制,但是目录结构会丢失。我做了这样的事情: <Content Include="..\..\MyContentFiles\**"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> 如何在保留目录结构的情况下将这些文件/目录递归复制到项目的输出目录中?
85 msbuild  csproj 

5
文件可以嵌套在VS2017解决方案资源管理器的.NET Core(非ASP.NET Core)项目中吗?
在“老派” MSBuild项目中(例如VS2017中Windows窗体仍在使用),可以通过DependentUponcsproj文件中的项目将文件“嵌套” 。 我用它在Noda Time中将单元测试分组在一起,例如 <Compile Include="LocalDateTest.PeriodArithmetic.cs"> <DependentUpon>LocalDateTest.cs</DependentUpon> </Compile> 这导致了易于导航的测试: 我知道在移至project.json.NET Core时会“丢失”此功能,但希望它在转换为MSBuild时会返回。但是,即使基于.NET Core SDK(根元素<Project Sdk="Microsoft.NET.Sdk">)的MSBuild项目在Visual Studio 2017中看起来也没有得到相同的处理,即使ItemGroup使用与``老派''项目相同的元素手动添加了。 ASP.NET Core项目会收到针对最小的CSS和Javascript的自动嵌套,但是尚不清楚如何将其应用于.NET Core库项目中的C#。

8
MS-Build 2017“ Microsoft.WebApplication.targets”丢失
我正在尝试将我们的构建服务器(jenkins)从Visual Studio 2015升级到2017。我们正在通过MS-Build进行构建。我已经按照此答案中的说明下载并安装了MS-Buld工具。如果我编译项目,则会收到Microsoft.WebApplication.targets未发现的错误。 详细错误: error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets" 我在MS-Build目录中进行了查找: PS C:\Program Files (x86)\MSBuild> dir -Recurse -Filter "Microsoft.WebApplication.targets" Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 11.01.2012 00:23 19654 Microsoft.WebApplication.targets Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications Mode LastWriteTime Length Name ---- ------------- …

1
dotnet CLI和新版vs2017 msbuild之间的关系
随着从VS2017引入project.json的新csproj格式的迁移,我努力了解dotnetcli和新格式之间的区别msbuild以及何时使用它们之间的区别。 1)要csproj从命令行构建新的netstandard库,我应该调用dotnetcli(例如dotnet restore dotnet build)还是使用msbuild(例如msbuild ExampleNetstandard.sln)。 2)另外,我的理解是,有两个版本msbuild,一个基于完整框架,另一个针对dotnet core。它是否正确?我应该一直使用dotnet version 3)是dotnet cli独立的还是需要msbuild安装的?例如,当您安装dotnet SDK时,是否还会安装msbuild?如果是这样,这与vs2017一起安装的版本不同吗?

5
如何防止在发布模式下复制XML文档文件?
我有一个Visual Studio 2010项目,其中引用了一些第三方组件。它们的程序集随附有XML文档文件,这些文件对我们(仅我们)开发人员有用。并且无论何时构建项目(在Debug或Release模式下),这些XML文件都将被复制到build目录。 在Visual Studio中或通过MSBuild,我似乎找不到设置或开关来禁用将这些XML文件复制到构建目录的功能。生成后脚本可能是一个选择,但是很臭。有任何想法吗?谢谢。

5
使用MSBuild.exe通过cmd行“发布” ASP.NET MVC 4项目
我正在寻找要运行的命令,该命令MSBuild.exe只需要MVC 4项目并将其发布到给定目录。 例如, MSBuild <solution>/<project>.csproj -publish -output=c:/folder 这显然是不正确的语法。我正在尝试简化我的问题。 这个问题是关于构建XML的,但是我没有尝试做那么多的细节。 我只是在尝试进行部署。 在该问题的最下方,有人说“ MSDeploy”。我可以调查一下,但这是唯一的选择吗?我没有能力在服务器上安装Web部署。在这种情况下,我真正需要做的就是“发布”并将已发布项目的内容发送到服务器/文件系统上的给定目录。 有人有我可以使用的一个内胆吗? 我必须使用MSDeploy吗? MSDeploy是否要求在服务器上安装Web部署? 在服务器上设置Web部署是否不需要设置某些端口,权限和安装某些IIS加载项? 我很想执行简单的事情。

4
如何使用msbuild获取exec任务输出
我正在尝试通过exec任务获取简单的输出msbuild: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="Test"> <Exec Command="echo test output"> <Output TaskParameter="Outputs" ItemName="Test1" /> </Exec> <Exec Command="echo test output"> <Output TaskParameter="Outputs" PropertyName="Test2" /> </Exec> <Message Text="----------------------------------------"/> <Message Text="@(Test1)"/> <Message Text="----------------------------------------"/> <Message Text="$(Test2)"/> <Message Text="----------------------------------------"/> </Target> </Project> 但是得到下一个输出: echo test output test output echo test output test output ---------------------------------------- ---------------------------------------- ---------------------------------------- 如何通过脚本获取输出?

6
在构建服务器上不使用Visual Studio的情况下构建ASP.NET 4.5
自从我设置构建服务器以来已经有一段时间了,所以也许我忘记了一些东西,或者.NET 4.5与上次执行此操作的版本不同,但这是我的问题。 我正在尝试设置构建服务器来监视源代码控制存储库。每当发生任何更改时,我都希望服务器拉出更改并构建项目。如果没有错误,我想将该站点部署到在构建服务器上运行的网站。 过去,当我这样做时,我以为只安装.NET就可以做到这一点,但是当我尝试构建该项目时,出现了一个错误消息“ C:\ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v11 .0 \ WebApplications \ Microsoft.WebApplication.targets”丢失了,如果我去看看,我可以看到它丢失了。实际上,没有Visual Studio 11目标文件。 经过很多思考和抓挠,我走了出去,得到了“ Windows 8 / .NET 4.5 SDK”,以为.NET 4.5 SDK可能会安装我需要的目标文件,但除非我以某种方式安装了错误,否则它不会安装。 因此,为了使项目得以生成,我需要在Build Server上放置什么。我希望不必安装完整的Visual Studio 2012。

12
找不到“ C:\ Microsoft.Cpp.Default.props”
我在Visual Studio 2013中创建了一个项目。 该项目文件具有以下属性: ToolsVersion =“ 12.0”,PlatformToolset = v120。 我安装了Visual Studio 2013和Microsoft Build Tools 2015。使用MSBuild 12.0成功构建了该项目。在尝试使用MSBuild 14.0进行构建时,出现错误 MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 据我了解,问题在于变量VCTargetsPath没有得到评估。如果我在生成之前指定变量VCTargetsPath(值为C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 …

2
TeamCity表示在MSBuild步骤中使用“ Build Parameters”而不是“ / property:”。那是什么意思?
我有一个TeamCity服务器设置来进行CI构建。我正在构建和测试C#解决方案,并运行一些自定义MSBuild任务。这些任务之一是在我的构建输出中打印警告... MSBuild命令行参数包含“ / property:”或“ / p:”参数。请改用Build Parameteres。 我不明白这是什么意思或如何删除它。Google表现不佳(有或没有错字)。我从命令行(使用/verbosity:diagnostic)运行了任务,但它没有出现,所以我认为它是TeamCity的消息。 MSBuild任务是 <Target Name="InstallDb"> <MakeDir Directories="$(DbPath)" /> <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseDrop.sql" /> <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseCreate.sql -v DbPath="$(DbPath)"" /> <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseProgrammability.sql" /> </Target> 并且相关的TeamCity步骤信息是 MSBuild版本:4.0 MSBuild工具版本:4.0 运行平台:x64 目标:InstallDb 命令行参数:/property:DbPath=%env.DB_PATH%
80 msbuild  teamcity 

8
如何获得TFS2010通过MSBUILD为我运行MSDEPLOY?
Vishal Joshi在此处提供了出色的PDC演讲,该演讲描述了Visual Studio 2010中的新MSDEPLOY功能-以及如何在TFS中部署应用程序。(Scott Hanselman也发表了精彩的演讲,但他没有参加TFS)。 您可以在TFS2010中使用MSBUILD来调用MSDEPLOY,以将程序包部署到IIS。这是通过MSBUILD的参数完成的。 演讲解释了一些命令行参数,例如: /p:DeployOnBuild /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True /p:MSDeployPublishMethod=InProc /p:MSDeployServiceURL=localhost /p:DeployIISAppPath="Default Web Site" 但是有关此的文档在哪里-我找不到任何文档? 我整天都在努力使它正常工作,但并不能完全正确,并最终导致各种错误。如果我运行程序包的cmd文件,它将完美部署。如果我通过Visual Studio运行WebDeploy,它也可以完美运行。 但是我想通过msbuild使用这些参数来使整个部署运行,而不是单独调用msdeploy或运行包.cmd文件。我怎样才能做到这一点? PS。是的,我确实在Web Deployment Agent Service跑步。我也有在IIS下运行的管理服务。我试过同时使用。 我正在使用的Args: /p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:Configuration=Release /p:CreatePackageOnPublish=True /p:DeployIisAppPath=staging.example.com /p:MsDeployServiceUrl=https://staging.example.com:8172/msdeploy.axd /p:AllowUntrustedCertificate=True 给我 : C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets(2660):VsMsdeploy失败。(远程代理(URL https://staging.example.com:无法联系8172 / msdeploy.axd?site …

3
在MSBuild中传递变量的不同方法
我对MS Build还是比较陌生,并且一直在审查Visual Studio附带的许多内置目标文件。我已经看到变量通过几种不同的方式传递,并且不确定它们之间的区别: $(...) @(...) %(...)
78 msbuild 

15
未为项目设置OutputPath属性
构建我的Jenkins / MSBuild解决方案会给我这个错误 c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error : The OutputPath property is not set for project '<projectname>.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Latest' Platform='AnyCPU'. You may be seeing this message because you are trying to build a project …
78 msbuild  jenkins 

9
asp.net webapi发布-无法复制xml文件
我有基于此自动生成的帮助的MVC 4.0 WebApi项目。 我的模型类存储在解决方案中的另一个项目中。为每个项目启用xml文件的生成(项目属性->构建-> OutPut-> XML文档文件-启用)。 在本地调试中一切正常-xml文件已复制到项目目录,我看到了来自其他项目的字段/类的注释。 但是,当我使用发布配置文件(到文件夹)时,xml文件不会复制到输出文件夹。仅复制WebApi主项目中的一个xml文件。所以我看不到其他项目对课程的评论。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.