标签: msbuild

找不到MSBuild目标包

我想打包我的VS2010 Web应用程序项目,以便使用msdeploy进行部署.在开发机器上我可以使用:

MSBuild.exe "C:\path\to\WebApp.csproj" /target:package
Run Code Online (Sandbox Code Playgroud)

但在我的构建服务器上,我收到此错误:

错误MSB4057:项目中不存在目标"包".

我在构建服务器上缺少什么?

msbuild package web-deployment msdeploy

72
推荐指数
3
解决办法
4万
查看次数

在MSBuild中传递变量的不同方法

我是MS Build的新手,并且一直在审查Visual Studio附带的许多内置目标文件.我看到变量通过了几种不同的方式,我不太确定它们之间的区别:

$(...)
@(...)
%(...)
Run Code Online (Sandbox Code Playgroud)

msbuild

71
推荐指数
2
解决办法
7452
查看次数

Visual Studio 2012解决方案TeamCity中的MSBuild

我有一个VS 2012 web项目/ sln,我正在尝试在TeamCity中构建.它使用安装在TeamCity上的.NET 4.5.

TeamCity服务器仅安装了VS 2010.

构建运行时出现此错误:

C:\BuildAgent\work\d5bc4e1b8005d077\CUSAAdmin.Web\CUSAAdmin.Web.csproj(799, 3): 
error MSB4019: 
The imported project 
    "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. 
 Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. Project CUSAAdmin.Web\CUSAAdmin.Web.csproj failed. 
 Project CUSAAdmin.sln failed. 
Run Code Online (Sandbox Code Playgroud)

它正在尝试使用Visual Studio 2012(v11.0)进行构建.

虽然我在build.xml中将VisualStudioVersion设置为10

 <Target Name="BuildPackage">
   <MSBuild Projects="CUSAAdmin.sln" ContinueOnError="false" 
     Targets="Rebuild" 
      Properties="Configuration=$(Configuration); VisualStudioVersion=10.0"  />
Run Code Online (Sandbox Code Playgroud)

在项目内部,它也默认为VS2010

  <PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath 
    Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
Run Code Online (Sandbox Code Playgroud)

msbuild teamcity visual-studio-2010 visual-studio visual-studio-2012

71
推荐指数
4
解决办法
3万
查看次数

MSBuild用于删除文件的任务语法

我正在尝试编写一个MSBuild任务,它从我的生成构建脚本上的bin文件夹中删除Obj目录和PDB,似乎无法使其正常工作.

有没有人有他们这样做或类似的例子,或者链接到一个简单的删除文件和MSBuild目录的例子?

msbuild msbuild-task

70
推荐指数
5
解决办法
5万
查看次数

MSBuild脚本和VS2010发布应用Web.config转换

所以,我安装了VS 2010,我正在修改我的TeamBuity构建集成的MSBuild脚本.一切都很好,只有一个例外.

如何告诉MSBuild我要应用我在发布构建时创建的Web.conifg转换文件...

我有以下产生编译的网站但它,它将Web.config,Web.Debug.config和Web.Release.config文件(全部3)输出到编译的输出目录.在工作室中,当我执行发布到文件系统时,它将执行转换并仅输出具有适当更改的Web.config ...

<Target Name="CompileWeb">
    <MSBuild Projects="myproj.csproj" Properties="Configuration=Release;" />
</Target>

<Target Name="PublishWeb" DependsOnTargets="CompileWeb">
    <MSBuild Projects="myproj.csproj"
    Targets="ResolveReferences;_CopyWebApplication"
    Properties="WebProjectOutputDir=$(OutputFolder)$(WebOutputFolder);
                OutDir=$(TempOutputFolder)$(WebOutputFolder)\;Configuration=Release;" />
</Target>
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒..!

我知道这可以通过其他方式完成,但我想尽可能使用新的VS 2010方式

xml asp.net msbuild visual-studio-2010 web-config-transform

70
推荐指数
4
解决办法
3万
查看次数

VS2010如何在项目中包含文件,在构建或发布期间自动复制它们以构建输出目录

任务是形成Visual Studio 2010项目,以便在任何构建或发布期间将某些foo.exe实用程序复制到output(bin)目录中.

早期我在.csproj(MSBuild文件)中创建了PostBuildEvent任务:

<PropertyGroup>
  <PostBuildEvent>
    Copy "$(SolutionDir)Tools\foo.exe" "$(ProjectDir)$(OutDir)foo.exe"
  </PostBuildEvent>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

但这不是普遍的.发布期间(Visual Studio 2010)foo.exe出现在bin目录中,但未复制到输出发布目录.也许我做的一切都完全错了,并且有一些标准机制可以将项目中的文件包含在以后,在构建或发布期间,复制到bin

msbuild project visual-studio

70
推荐指数
3
解决办法
12万
查看次数

asp.net webapi发布 - 不复制xml文件

我有MVC 4.0 WebApi项目,基于此自动生成帮助.

我的模型类在我的解决方案中存储了另一个项目.为每个项目启用xml文件的生成(项目属性 - >构建 - > OutPut - > XML文档文件 - 已启用).

在本地调试中,一切正常 - 将xml文件复制到项目目录,我看到来自其他项目的字段/类的注释.

但是当我使用发布配置文件(到文件夹)时,xml文件不会复制到输出文件夹.仅复制主WebApi项目中的一个xml文件.所以我没有看到其他项目的类的评论.

msbuild asp.net-mvc-4 asp.net-web-api publish-profiles

70
推荐指数
7
解决办法
3万
查看次数

什么时候copy-local应该设置为true,什么时候不应该?

我想知道什么时候设置copy-local=true引用有任何启发式方法?

如果引用类型只在内部使用我可以设置copy-localtrue,但如果被引用类型暴露作为参数和返回值我设置copy-localfalse和指示时,应使用我的媒体库的依赖特定版本应参照?

谁能为我澄清一下这个?

.net msbuild reference copy-local

69
推荐指数
5
解决办法
6万
查看次数

什么是NuGetPackageImportStamp?

将某些NuGet包添加到项目时,有时会在.csproj文件的第一个属性组中显示一个奇怪的项.

<PropertyGroup>
  ...
  <NuGetPackageImportStamp>3d051ef3</NuGetPackageImportStamp>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

邮票每次都不同,并且看起来不是连续的.

<NuGetPackageImportStamp>在NuGet文档中找不到任何引用.它是什么,它是如何工作的?有必要吗?

一个似乎每次添加这个的包是StyleCop.MSBuild,至少使用当前的4.7.49版本.只需将该包添加到新项目中,您就会看到这个神秘项目出现在您的项目文件中.

.net msbuild csproj nuget

68
推荐指数
1
解决办法
9805
查看次数

dotnet cli和新的vs2017 msbuild之间的关系

随着从VS2017引入project.json的新csproj格式的转变,我正在努力理解dotnetcli和new 之间的区别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安装的版本不同?

msbuild csproj dotnet-cli visual-studio-2017

67
推荐指数
1
解决办法
1万
查看次数