标签: Msbuild
build-automationtfsbuild
我们有大量的VisualStudio解决方案包含相同的共享15个项目,大多数解决方案只因web应用程序而异
我试图将所有内容整合到一个构建中,该构建只构建一次共享项目,然后让web应用程序项目引用输出共享程序集
我发现,由于web项目通过元素指向共享项目,我无法告诉它在我的自定义构建项目中的其他地方寻找程序集。我想使用类似于:
但只有当web项目通过元素引用共享程序集的dll时,这才有效。似乎如果在中找不到指向的内容,它不会尝试在任何ReferencePath文件夹中查找。它只是放弃了。 您可
标签: Msbuild
cruisecontrol.netwindows-server-2003mbunit
我最近在安装了.NET Framework 3.5 SP1的Windows server 2003计算机上,通过Cruise Control.NET和NAnt运行的构建服务器上安装了MbUnit版本2.4.2.355
我检查了构建脚本的每个细节,CC.NET上的NAnt输出报告告诉我测试项目构建得很好
这是NAnt脚本:
<target name="compiletests" description="Compiles unit tests separately">
<
我正在尝试在MSbuild()中使用YIUCompression DLL
但在运行MSBuild时,我不断遇到以下错误:
<!-- Execute CompressorTask for each file in the list -->
<CompressorTask
Condition="'%(JavaScriptFiles.Identity)' != ''"
JavaScriptFiles="%(JavaScriptFiles.Identity)"
Obf
运行MSBuild时,使用主脚本调用的每个MSBuild脚本(通过MSBuild任务)都可以访问使用/p:MyProp=value在命令行上传递的任何内容。如何定义一个属性,该属性可以从任务中的每个脚本类似地访问
例如:
Script1.proj:
[...]
<Target Name="Test">
<MSBuild Projects="Script2.proj"/>
<Message Text="Script1, GlobalProp1=$(Global
我尝试更新构建过程,以便对所有程序集和安装程序进行代码签名:
1建造所有的项目
2签署他们的产出
3个构建安装程序msi,带有VS2010安装项目
4个标志安装程序
我遇到的问题是,在步骤3中,安装程序项目将主要输出从obj文件夹中取出。但在步骤2中,我获取MSBuild任务的输出,它们位于bin文件夹中。因此,我的msi中有一个未签名的主输出
MSBuild调用:
<MSBuild Projects="%(SolutionFiles.FullPath)" ContinueOnError
希望通过msbuild实现google闭包。
我找到了一些解决方案,但很难让它发挥作用。
关于如何在构建期间在中读取多个js文件并创建.min版本,有什么建议吗
谢谢
编辑:根据下面的答案,我可以进行一些修改,以完全实现建议的内容,但以一种简单的形式,我写了以下内容:
<ItemGroup>
<JSMin Include="$(OutputPath)Scripts\*.js"/>
</ItemGroup>
<Target Name="
我正在编写一个web开发目标文件,并希望以编程方式确定出现在“\u PublishedWebsites”下面的目录的名称
我目前必须使用这个:
$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)\\u PublishedWebsites\MyWebApplication
有什么想法吗
(我不会将此用于包含多个要发布的网站的解决方案)在.NET 4.0中,新的Web发布管道(WPP)具有控制输出位置的方法
首先,您需要在CopyWebAppl
我正在尝试对文件列表进行“循环”(批处理),并使用其他目录名替换根目录名
此项目使用3.5,因此无法充分利用一些新的4.0功能
我正在使用
MSBuild.ExtensionPack.Framework.TextString
任务(来自
)
基本上,我想重写一个文件名
c:\SomeFolder\myfile.txt
to
c:\AnotherFolder\myfile.txt
我写了一个模拟来演示这个问题
以下是我得到的结果:
"C:\Windows\twunk_16.exe"
我们在C#组件中定义了代码#分析,因此当我们在开发箱上构建它们时,FxCop会对它们进行分析。我希望FxCop在我们的构建系统中运行时关闭。生成系统显然正在使用msbuild.exe命令行命令。有没有办法修改此可执行文件中的条件编译符号?如果没有,是否有人知道我的问题的其他可能解决方案(手动关闭除外)
谢谢。为什么需要关闭它们?设置项目的最佳方法是仅为调试配置定义代码分析。发布版本将不会设置此值。这样,在生成生产安装时,它们将不会引用FxCop。代码分析编译符号控制是否将代码中包含的Suppre
我想使用MSBuild从文件列表中删除所有空行(只有一些空格和换行符的行)
实现这一目标的最佳方式是什么
我知道我可以在C#或VB.NET中编写一个MSBuild插件,使用简单的正则表达式替换来完成这项工作,但我更喜欢一个不需要我完成这项工作的解决方案
如果有开源的MSBuild插件可以做到这一点,我也欢迎这种解决方案。@Ludwo是正确的,您必须考虑到空格字符。此外,要用空字符串替换任何文本,您需要使用,而不是将空字符串传递给ReplacementText属性。因此,以下目标应该解决问题:
我希望能够将生成期间生成的所有程序集的版本号指定为MSBuild命令参数,如下所示:
MSBuild.exe /p:version=5.4.3.0
我已经看过了AssemblyInfoTask,但在我看来,这不是一个好的解决方案。我一直使用AssemblyInfo任务,正如您在评论中所描述的那样
<!-- update standard assembly attribute in all projects -->
<Target Name="BeforeBuild"
标签: Msbuild
execspaceworking-directory
对于命令参数,可以通过“转义路径,但是,如果工作目录参数中有空格,则这不起作用
有人有解决办法吗
在调用生成任务之前,可能会更改我的环境HOMEDRIVE\HOMEPATH设置,但这很可怕,而且可能不是一件小事。无需逃避任何操作或执行任何特殊操作。这应该可以工作:
<Exec Command="Path_to_some_executable.exe" WorkingDirectory="Path to some directory\with spaces" />
注意:我用MSbu
我得到了以下测试代码:
<Target Name="TestTarget">
<MSBuild.ExtensionPack.Xml.XmlFile
TaskAction="UpdateElement"
File="@(ConfigurationFile)"
XPath="/MyConfiguration/Settings/RetentionTime"
InnerText="$(RetentionTime)"/>
&l
致力于为多个解决方案集中配置、应用程序设置和连接字符串,同时从命令行切换到使用msdeploy部署web应用程序。理想情况下,我希望构建一次包,并在包部署到每个环境时获得最新的配置。我需要一些关于最佳方法的建议
使用Parameters.xml和SetParameters.xml文件动态交换设置和连接字符串。看
使用machine.config或服务器级别的web.config文件存储常用应用程序设置和连接字符串
使用packageweb NuGet包,从中可以将web.config转换与msd
我正在将MSBuild xml任务文件集成到visual studio 2012解决方案中。该文件执行两个任务,一个是针对StyleCop进行验证,另一个是运行FxCop分析。我已根据web上的教程创建了msbuild文件
我的问题是,文件应该存储在文件系统的什么位置?我认为这超出了解决方案的范围。如何设置解决方案以运行此msbuid文件?我将TFS用于源代码管理,将TFS Build 2010用于CI,因此我也希望将其集成到其中。以下是我将源代码管理树放在工作位置的方式:
Root
-- A
我在Visual Studio 2012中有一个数据库项目。我正在尝试创建MSBuild项目以在生成服务器上发布数据库。在我的解决方案中,我有一个要在构建服务器上使用的发布配置文件
我有以下目标设置:
<Target Name="BuildDatabases">
<MSBuild Projects="$(DBProjectPath)" Targets="Build;Deploy" Properties="DeployOnBuild=true;Sql
我正在通过服务器上的自动构建触发器创建web部署包。
软件包应该在任何需要的服务器上处理所有事情(包括创建特定网站、应用程序池和最新代码)
我从配置的本地IIS站点手动提取了一个部署包,其中包含MsDeploy创建站点、应用池等所需的所有信息。。。
它们存在于以下文件中
archive.xml
parameters.xml
systeminfo.xml
现在的想法是,我将在构建服务器上创建一个自动部署包,该包包含新的编译代码,但在.zip包中包含上述xml文件
现在,我正在构建应用程序,然后执
我知道使用MSBuild扩展包可以解压缩Zip文件,但在我的项目中,我需要解压缩RAR文件
如何执行此操作?使用Exec通过winrar.exe/rar.exe提取存档文件。
如果已安装WinRar,则可以从注册表中提取其installdir,否则请指定rar.exe的位置
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Target Name=
我已经在VisualStudio中为MVC应用程序创建了一个库存标准解决方案
默认的解决方案配置包含“Release”和“Debug”,其中一个解决方案平台名为“Any CPU”
在命令提示符(不是PowerShell)中使用MSBuild生成解决方案时,出现以下错误
“C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe”“/Demo1.sln”/verbosity:quiet/nologo
E:\Dev\dotnet\Demo1\
我已经创建了一个自定义构建模板(适用于TFS 2013),并在构建后完成了任务,现在希望执行一些所需的操作
关于我需要在任务中获取的参数,我找到了binaryfolder,我觉得MsBuild-aldready知道该参数,但我如何将其传递到任务中?正在搜索网络,我发现enum WellKnownenEnvironmentVariables指向我需要的变量,我只需要在类型的构建模板中创建自定义任务GetEnvironmentVariable将结果分配给一个变量,然后将此变量传递给需要该路径的第二个
在Visual Studio 2013中创建新解决方案时,文件顶部如下所示:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30110.0
这个格式版本不正确吗?VS2012(v11)的格式版本是12.00,那么为什么VisualStudio2013(v12)的格式版本不是13.00呢
这导致我们的构建服务器出现问题,因为根据
标签: Msbuild
msbuild-targetmsbuild-itemgroupmsbuild-batching
我试图根据一种模式(给定目录的子目录下的所有*.config格式的文件)在文件列表上运行多个命令,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="BuildSolution" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="TransformXml"
我们在CI服务器上使用MSBuild编译我们的WebApp,但是该构建从构建的输出中忽略了由TypeScript构建的JavaScript文件
我希望输出中包含JavaScript,而不是Typescript,但是它们都不在输出中的预期位置
如何在解决方案中包含JavaScript文件而不必全部包含?TypeScript团队似乎认为这很糟糕,但我也不希望在我的解决方案中有重复的所有文件。您的构建服务器上可能没有安装TypeScript。要安装它,请将TypeScript文件夹从c:\Progra
我有一个2008年的TFS构建服务器,刚刚升级到2010年,用于TFS 2013。使用升级模板并指向正确的生成服务器,我得到了TF900560:无法启动生成:无法设置未知成员“Microsoft.TeamFoundation.build.Workflow.Activities.TfsBuild.targetsnotloged”。这是什么意思?我可以采取哪些故障排除步骤 在我看来,您的构建脚本中的一个配置在2010年不再受支持?是否有可能从当前构建过程中剥离任务,使其变得非常简单,并获得该构建。然
我有一个针对WIX3.7的项目,使用VS2013和VSO存储库。当我使用“添加为链接”将文件添加到项目中时,生成失败并显示“找不到文件”。例如,在wxs文件中,我有:
<Icon Id="ArpIcon" SourceFile="Images\favicon.ico"/>
源文件位于项目外部的文件夹中,并且已签入VSO。生成时,输出中的错误包括:
…错误LGHT0103:系统找不到该文件
'Images\favicon.ico'
如果直接包含该文件(即不作为链接),则没有问题
如何以正确的方式使用mc.exe进行编译。目前,我有一个构建步骤,运行相关命令,但查看
似乎有更好的办法
我不是msbuild的专家,所以请原谅这个问题有多简单。谷歌没有透露任何帮助
<Project
DefaultTargets="Build"
ToolsVersion="14.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
我有一个wix项目。当我从VS构建它时,它构建得非常完美。
在wix项目中,我使用安装程序需要的组件dll,其路径为Source=“..\Debug\MyDll.dll”
但是,当我尝试使用构建机编译此文件时,它失败了,错误为“系统找不到文件”,因为文件被放在了另一个位置(放在“bin”文件夹中)
我希望能够使用VS(在开发机器上)和构建机器中进行构建。如何解决此差异?您可以使用,而不是直接指定路径。也就是说,您可以从WIX项目中引用DLL项目,然后代替。\Debug\MyDll.DLL“使
所以,我设置了一个构建服务器
我有一个常规的.NET项目,其中也有一个Web UI项目
NET部分是一个服务,WebUI部分是一个AureliaJS应用程序
所有这些都是由MSBuild在VS2015中控制的,所有这些都非常有效
同时,在构建服务器上,我设置了CCNet,从Git获取上述项目源,然后构建它们,作为一项任务,除了一个小问题外,它可以顺利完成
我的CCNet配置文件如下所示:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder"&
我不能从命令行构建vs2017解决方案,但我可以从IDE构建。从IDE构建之后,命令行构建就可以工作了。所以ide做了一些不同的事情——我遗漏了什么?以下是我为命令行生成所做的操作:
nuget.exe restore mysoln.sln
"E:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\msbuild.exe" /m /t:Rebuild /clp:Summary /p:Config
我试图获取通过PackageReference引用的特定软件包的版本,以便我可以引用其中一个软件包中的工具。我能够使用消息任务编写版本:
<Message Importance="High" Text="@(PackageReference->%(PackageReference.Version))" Condition="'%(PackageReference.Identity)' == 'Google.Protobuf.Tools'" />
如何在属性中检索该
我有一个解决方案,当我用roslyn加载它时,它内置于vs中,如下所示:
var workspace = MSBuildWorkspace.Create();
var solutionPath = @"c:\path\to\my.sln";
var solution = workspace.OpenSolutionAsync(solutionPath).Result;
那么所有项目都有0个元数据引用
如果我尝试从引用的程序集获取类型,如下所示:
var compilation = soluti
我正在尝试使用travis在windows环境中自动生成golang项目,并使用msbuild和wix打包.exe
同样的配置也适用于Github操作,因此我相信.wixproj和wxs都是正确的,并且在travis安装中msbuild的配置存在一些问题,但我没有更多的线索
travis安装的msbuild可能不包含所需的wix工具集,我试图安装它们,但是在创建包时错误仍然存在
错误
C:\Users\travis\gopath\src\github.com\gallo-cedrone\nri
我有一个引用了一些nuget包的项目
当msbuild将引用的nugets复制到输出文件夹时,只复制DLL本身
有没有办法指示msbuild即使在输出文件夹中也保持nuget相对路径
例如,当newtonsoft.json numget从
[nugetcache]\newtonsoft.json\12.0.3\lib\netstandard2.0\newtonsoft.json.dll,然后我希望它像这样放在输出bin文件夹中:*\bin\Release\newtonsoft.json\12.0
我正在尝试编写一个MSBuild任务,该任务在我的生产构建脚本上从我的bin文件夹中删除Obj目录和pdb,但似乎无法使其正常工作
是否有人有这样或类似的示例,或者有指向使用MSBuild删除文件和目录的简单示例的链接?如果要删除整个目录,则需要执行以下任务:
如果要从bin中删除PDB文件,则需要执行以下任务:
请注意,在删除任务中不能使用通配符,因此如果有多个pdb文件,则必须提供一个作为参数。您可以先删除这些目录中的文件,然后使用
<Target Name="SomeTarg
我们有一个安装项目,它生成一个未压缩的MSI文件,并且根本没有setup.exe,稍后将由NSIS进行压缩。
在一个特殊的构建设置中,我想在MSI被NSI包装之前复制它,更改副本并保留它。我还希望在msbuild创建它之后对其进行压缩。
有没有一种简单的方法(可能是某种命令行工具?)可以用来压缩已经创建的msi文件?是的!请参见:)
有一系列示例脚本显示了如何使用Windows Installer API操作MSI文件
MSI文件本身从未被实际压缩,但它可以包含可能被压缩的嵌入式CAB文件
我建
我还有一个问题
我正在使用MSBUILD为不同的框架创建预编译程序集
1.如何通过更改Assemblyinfo文件中的AssemblyVersion属性。是否有可用的属性,或者我必须跳入该文件并更改该属性
2.如果我有对其他dll的引用,例如我创建了两个单独的dll,x.dll和y.dll,并将其添加到z项目中。如何解析这些引用,如果未解析,我们如何得到通知
谢谢你的帮助
问候,,
Lokesh.但是您是使用MSBuild来创建这些程序集,还是什么?如果要更改MSBuild脚本中的Assembl
MsBuild似乎在生成服务器上创建了一个名为BuildType的文件夹,该文件夹是复制.proj文件的位置。在源代码管理中,我有几个文件与构建项目文件位于同一文件夹中。我有一个映射到此位置的工作区
我希望能够明确指定应该将此工作区位置中的哪些文件复制到生成计算机。这可能吗
谢谢 不能在文件级执行此操作,但如果使用子文件夹组织生成类型文件夹,则可以隐藏要排除的文件夹
我有以下代码来替换给定文件集中的所有令牌:
我正在使用msbuild扩展detokenise任务
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="MSBuild.ExtensionPack.FileSystem.Detokenise" AssemblyFile="Extensions
标签: Msbuild
msbuild-taskmsbuild-propertygroupmsbuild-buildengine
我想使用ms build中的正则表达式将test.xml文件中的字符串“how r u”替换为另一个xy.xml文件中的字符串“I am fine”
ie我必须从一个文件(xy.xml)中读取字符串,并将其替换到另一个文件test.xml中。
因此,请举例说明解决此问题的必要步骤。编辑:此答案已过时。使用下面的解决方案…
使用ReadLinesFromFile任务从xy.xml文件获取替换字符串
然后使用xy.xml中的值作为FileUpdate任务的替换字符串
把它们放在一起;) 这不再是必需
创建了一个引导程序,它只安装很少的组件。但是,如果组件上的任何组件出现故障,将显示上述对话框。他们是否有办法更改显示的系统消息文本
引导程序引擎位于C:\Program Files\Microsoft SDK\Windows\v7.0A\bootstrapper\engine下。在这个目录中,每种语言都有一个包含字符串的文件夹。有关英语,请查看en\setup.xml 引导程序引擎位于C:\Program Files\Microsoft SDK\Windows\v7.0A\bootstrappe
我不知道如何像方法一样将值传递到MSBuild任务。获取以下项目文件
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Main">
<PropertyGroup>
<Var1>Foo</Var1>
<Var2>Bar</Var2>
</Prope
我集成了连续构建过程和巡航控制。在EOD时,它生成一个构建报告。如果任何NUnit测试用例失败,则构建失败。我们已经编写了一个特定的测试用例,并将其添加到一个单独的dll中。如果程序集中的任何测试用例失败,我们不希望构建失败。我们正在使用MSBuild target、.proj文件和cruise control、ccnet配置文件。我将调用NUnit两次:一次是针对您希望在生成不通过时失败的测试,然后第二次运行您不希望影响生成的测试,例如
<!-- Any failing tests in
例如,给定一个项目quickie.vcxproj,要在c:\output\c下构建它,而不明确指定项目名称:
msbuild/t:Rebuild/p:Configuration=Debug/p:PlatformToolset=v100 quickie\quickie.vcxproj/p:OutDir=c:\output\c\$(MSBuildProjectName)\
结果是一个目录c:\output\c\$(MSBuildProjectName)
所需结果是:c:\output\c\quick
我在解决方案中设置了一个C#项目和另一个C#项目作为项目参考。当我使用MSBuild参数“/m/p:buildinparallel=true”在生成服务器上生成解决方案时,依赖项目首先生成,但似乎在依赖项目的生成后事件期间,引用它的项目开始生成,并且由于找不到引用的程序集而失败(因为我的生成后事件在位修改引用的程序集,并且在该处理过程中它不可用)
我可以看到引用项目在修改被引用项目的程序集之前创建了ProjName.csprojResolveAssemblyReference.cache文件,到
标签: Msbuild
web-deploymentmsdeploywebdeploy
MSBuild似乎真的很喜欢我。
最近,我正在尝试从命令行构建和部署不同的可能性。
然而,当我将发布配置文件传递给MSBuild时,我遇到了一些看似奇怪的行为
下面是我刚才做的一个例子:
目前,我使用如下命令部署到本地IIS:
msbuild D:\PathToFile\DeployDBVariation01\DeployDBVariation01\DeployDBVariation01.csproj
/p:Configuration=Release;
Platform=AnyC
我们有一个构建*.sqlproj文件的MSBuild任务,该文件的输出作为工件加载回TeamCity,以供后续部署
与此用户类似,我们遇到了一些不可预测的输出文件命名问题:
有时,它会在/bin/Release下生成此输出文件:
MyProj.sqlproj.dacpac
然后,后续生成将在同一文件夹中生成此文件:
MyProj.dacpac
我们还没有做深入测试-我想知道是否有其他人见过类似的情况,或者有建议的故障排除方法
要明确的是,这是同一个任务,对同一个项目运行同一个命令-只要在新
我正在使用WIX通过TFS/MSBuild生成一个.msi。破坏生成的错误(不仅仅是警告)是:
此错误在生成日志中出现两次
我只安装了一个版本的软件,没有重复的文件。它是一个带有单个.exe的单一windows应用程序
我验证了uniqueGUIDS,并多次使用了一些设置,但仍然没有运气。我甚至回滚了很多东西(wix文件、构建过程模板),但无论发生什么,我仍然会得到相同的错误
在我的WinApp.wxs文件中只有一个节
我很难找到这方面的信息,因为大多数遇到问题的人在他们的wix文件中都有相同应
我有一个相当简单的类,继承自ITask,作为更新版本的构建任务运行(VersionUpdater.dll)。项目文件条目如下所示:
<UsingTask TaskName="VersionUpdater" AssemblyFile="VersionUpdater.dll" />
<Target Name="BeforeBuild">
<VersionUpdater />
</Target>
这对于常规的.Net项目来说非常好;但是,我尝试
似乎不再管用了。我无法获取msbuild/?以显示/debug开关,当我尝试dotnet publish/debug时,它会抱怨/debug不是有效的开关
是否有任何方法可以调试MSBuild任务?已从MSBuild 15的公共生成及其代码中删除MSBuild的/debug功能
要在生成目标/msbuild文件中“调试”逻辑,最好的选择是使用-bl参数创建二进制日志,并使用。它显示了任务调用的所有输入/输出以及Msbuild运行期间发生的所有步骤
调试自定义任务(例如C#代码)非常困难。它将涉及
我有一个任务配置属性RelativePathOverride定义如下:
<PropertyGroup>
<RelativePathOverride>..\..\</RelativePathOverride>
</PropertyGroup>
这个很好用。但是,问题是,当我为RelativePathOverride属性提供空值时,它默认为NULL
<PropertyGroup>
<RelativePat
1 2 3 4 5 6 ...
下一页 最后一页 共 53 页