标签: msbuild

有没有办法自动将内容文件包含到asp.net项目文件中?

我经常在我的ASP.NET项目中添加很多内容文件(主要是图像和js).我正在使用VS发布系统,在发布之前,新文件在我将它们包含在项目中之前不会发布.我想自动包含指定目录中的所有文件.有没有办法指定哪些目录应该自动包含在csproj文件中或其他地方?

asp.net msbuild csproj

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

如何使用csproj多目标.NET Core类库?

当.NET Core仍然使用该project.json格式时,您可以构建一个针对多个框架的类库(例如net451,netcoreapp1.0).

既然官方项目格式正在csproj使用MSBuild,那么如何指定要定位的多个框架?我试图寻找这个在VS2017的项目设置,但我能只针对从.NET框架的核心在单一框架(它甚至没有列出我的其他完整的.NET框架版本已经安装) :

在此输入图像描述

c# msbuild csproj .net-core visual-studio-2017

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

如何让.NET Core项目复制NuGet引用来构建输出?

我正在尝试使用.NET Core编写一个插件系统,我的一个要求是能够将插件DLL及其依赖项分发给用户进行安装.但是,我无法弄清楚如何将我的NuGet依赖项包含为构建工件并将它们输出到构建文件夹,而不必将其dotnet publish用作hack.有什么方法可以在csproj中指定它吗?

c# msbuild csproj nuget .net-core

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

TeamCity说在MSBuild步骤中使用"Build Parameters"而不是"/ property:".那是什么意思?

我有一个TeamCity服务器设置来完成我的CI构建.我正在构建和测试C#解决方案并运行一些自定义的MSBuild任务.其中一项任务是在构建输出中打印警告...

MSBuild命令行参数包含"/ property:"或"/ p:"参数.请改用Build Parameteres.

我不明白这意味着什么或如何删除它.谷歌不好(有或没有拼写错误).我从命令行运行任务(with /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=&quot;$(DbPath)&quot;" />
  <Exec Command="sqlcmd -S .\sqlexpress -i db\OmnyxDatabaseProgrammability.sql" />
</Target>
Run Code Online (Sandbox Code Playgroud)

相关的TeamCity步骤信息是

MSBuild版本:4.0
MSBuild ToolsVersion:4.0
运行平台:x64
目标:InstallDb
命令行参数:/property:DbPath=%env.DB_PATH%

msbuild teamcity

77
推荐指数
2
解决办法
4万
查看次数

后期构建事件执行powershell

是否可以使用post build事件设置.net项目来执行powershell脚本?我正在使用此脚本生成一些文件.我也可以通过它是脚本的调试版本还是发布版本.这方面的一个例子很棒.

.net c# msbuild powershell

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

如何使用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>
Run Code Online (Sandbox Code Playgroud)

但得到下一个输出:

  echo test output
  test output
  echo test output
  test output
  ----------------------------------------
  ----------------------------------------
  ----------------------------------------
Run Code Online (Sandbox Code Playgroud)

如何通过我的脚本输出?

msbuild exec msbuild-task

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

如何将ILMerge集成到Visual Studio构建过程以合并程序集?

我想将一个.NET DLL程序集和一个由VB.NET控制台应用程序项目引用的C#类库项目合并到一个命令行控制台可执行文件中.

我可以从命令行使用ILMerge执行此操作,但我希望将引用程序集和项目的这种合并集成到Visual Studio项目中.从我的阅读中,我了解到我可以通过MSBuild Task或Target执行此操作,只需将其添加到C#/ VB.NET项目文件中,但我找不到具体的示例,因为MSBuild是一个很大的主题.此外,我找到一些将ILMerge命令添加到Post-build事件的引用.

  1. 如何将ILMerge集成到Visual Studio(C#/ VB.NET)项目中,这些项目只是MSBuild项目,将所有引用的程序集(copy-local = true)合并到一个程序集中?

  2. 这如何与可能的ILMerge.Targets文件绑定?

  3. 使用Post-build事件会更好吗?

msbuild ilmerge visual-studio-2008 visual-studio

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

文件可以嵌套在VS2017解决方案资源管理器中用于.NET Core(非ASP.NET核心)项目吗?

在"旧学校"MSBuild项目中 - 例如仍然在VS2017中的Windows窗体中使用 - 文件可以通过DependentUponcsproj文件中的项目"嵌套" .

我用它来在Noda Time中将单元测试组合在一起,例如

<Compile Include="LocalDateTest.PeriodArithmetic.cs">
  <DependentUpon>LocalDateTest.cs</DependentUpon>
</Compile>
Run Code Online (Sandbox Code Playgroud)

这导致了易于导航的测试:

嵌套测试

转向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#.

msbuild csproj .net-core visual-studio-2017

74
推荐指数
3
解决办法
6844
查看次数

将.csproj中的内容文件包含在项目锥体之外

我有一个C#项目说MyProject.csproj位于"C:\ Projects\MyProject \".我也有我想复制到这个项目的输出目录中的文件.但是,文件位于"C:\ MyContentFiles"位置,即它们不在项目锥内.该目录也有子目录.目录的内容不受管理.因此,我必须包括其下的所有内容.

当我在项目中将它们包含为"内容"时,它们会被复制,但目录结构会丢失.我做了这样的事情: -

<Content Include="..\..\MyContentFiles\**">
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Run Code Online (Sandbox Code Playgroud)

如何将这些文件/目录递归复制到项目的输出目录中并保留目录结构?

msbuild csproj

73
推荐指数
6
解决办法
7万
查看次数

Visual Studio 2013:数据库项目MSBuild错误

我有一个数据库项目作为我在Visual Studio 2013中的解决方案的一部分.在过去的3周内完美地工作,现在突然间它将无法构建,因此我无法发布任何更改.我收到了MSBuild错误:

"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v12.0\SSDT\Microsoft.Data.Tools.Schema.SqlTask​​s.targets(513,5):错误:MSB4018:"SqlBuildTask"任务意外失败.System.MethodAccessException:尝试通过方法'Microsoft.Data.Tools.Schema.Sql.Build.SqlTask​​Host.OnCreateCustomSchemaData(System.String,System.Collections.Generic.Dictionary`2)'来访问方法'Microsoft.Data.Tools. Components.Diagnostics.SqlTracer.ShouldTrace(System.Diagnostics.TraceEventType)'失败了."

有人有任何想法吗?我今天早上做的就是从源代码控制中删除最新的更改.我无法看到这会如何搞乱实际MSBuild过程,而最后签到的人根本没有任何问题.

msbuild database-project visual-studio-2013

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