问题标签 [msbuild-target]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
42402 浏览

msbuild - MSBuild 将参数传递给 CallTarget

我正在尝试在我的 MSBuild 文件中创建一个可重用的目标,以便可以使用不同的参数多次调用它。

我有这样的骨架:

但我不知道如何允许将参数传递给CallTarget,然后依次传递给Target它本身。

0 投票
1 回答
829 浏览

svn - MSBuild SvnInfo - 哪些目标输入是正确的?

我在 MSBuild 脚本中使用SvnInfo 任务:

$(Sources)仅包含源文件。

显然SvnInfo取决于$(Sources). Target 然后使用 info 生成带有修订号的输出文件。

实际上,我想在修订号更改时运行 SvnInfo,但在修订号与上次运行相同时不运行 Target(使用增量构建)。

如何在目标中正确指定输入(标签中的属性InputsTarget包含SvnInfo任务调用)?

我是通过以下方式制作的:

在我看来它的解决方法,因为理想情况下我应该知道哪些文件SvnInfo取决于哪些文件而不用猜测。是否有可能获得这样的信息?

我也不知道.svn文件夹是否被修改。

0 投票
1 回答
1589 浏览

msbuild - 将自定义 msbuild 目标从解决方案传递到项目

我有一个包含大量关联 .csproj 文件的解决方案。

每个 .csproj 文件都有一个<Target Name="PublishQA">....

当我尝试编译整个解决方案时构建失败:

当我.csproj直接构建项目时,它构建得很好。

如何告诉 msbuild 将目标传递给项目文件???

0 投票
3 回答
2545 浏览

visual-studio-2010 - 在 Visual Studio 2010 下运行除 DefaultTarget 之外的项目配置

我的 csproj 中有一个 MSBuild 目标,用于在构建后将我的 Web 应用程序的文件和文件夹复制到目标路径。

如果我通过命令行使用目标“PublishToFileSystem”调用 MSBuild,一切正常。

但现在我想“使用”这个目标也用于 Visual Studio 中的特殊配置(如发布、调试......)。

如何将配置分配给另一个目标,而不是使用 DefaultTargets 在项目中设置的 DefaultTarget“构建”:

谢谢,康拉德

0 投票
1 回答
315 浏览

visual-studio-2010 - MSBuild 命令不会从 Visual Studio 内部运行

我一直在对开源MarkdownDeep进行一些修改, 但在发布版本时遇到了麻烦——该项目包括一个使用 Nuget.exe 进行一些打包的构建后任务。

我可以从 dos 框中执行命令而不会出现错误,但该步骤总是失败(从 VisualStudio 作为发布构建配置的一部分运行时出现错误:9009。

谁能想到这是为什么?

0 投票
2 回答
394 浏览

msbuild - 如何使用 msbuild 控制兄弟依赖目标的构建顺序?

在我的项目中,我有两个导入语句:

每个目标都有一个如下定义的属性组:

我想保证 TransformConfig 总是在 Package 之前运行。我不控制任何一个依赖目标,并且不希望显式编辑它们,因为每当我通过 NuGet 更新这些目标时,这些编辑都会被擦除。Package 目标始终首先运行,这是不可取的。

这可能吗?

0 投票
2 回答
8493 浏览

msbuild - MSBuild 目标和 Visual Studio 2012 问题

我很难使用 Visual Studio 2012 UI 通过 Webdeploy 部署我的第三方非参考程序集。我有一个名为“库”的文件夹,其中包含一些程序集。通过我的 *.csproj 文件中的以下内容,我可以将Build Action设置为“ ThirdPartyAssemblies ”:

这很好用;当我构建时,程序集被复制到 bin 文件夹的根目录:-) 现在我遇到了一个问题:我无法通过 Webdeploy 将这些文件发布到服务器。我已经尝试了很多东西,似乎我找不到适合此任务的 MSBuild 目标......使用 Visual Studio 2010,我可以使用它:

问题是; OnAfterCopyAllFilesToSingleFolderForPackage不再调用目标:- /

在深入研究之后C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets' file, I've also tried 'OnAfterCopyAllFilesToSingleFolderForMsdeploy,但我无法让它工作。

谁能告诉我可以使用什么目标将这些程序集复制到带有 Webdeploy 的 Package 文件夹/服务器?

为什么 Visual Studio 2012 不将完整的 bin 文件夹复制到 Package 文件夹中?

0 投票
2 回答
164 浏览

msbuild - msbuild,覆盖不同文件中的属性值

我正在尝试根据另一个文件中的特定条件修改属性值。例如。我有一个调用目标文件的文件。

我有一个文件,其中包含要决定的项目组和修改的目标

但是当我打印“人”时,我得到空字符串。我检查了是否调用了“SetName”并设置了正确的名称。我在这里想念什么?

0 投票
1 回答
2572 浏览

visual-studio-2012 - MSBuild 和 SQL Server 数据库项目:将部署和发布目标绑定到构建配置

Visual Studio 2012。SQL Server 数据库项目。

解决方案中创建了四个构建配置:Debug、DevDb、TestDb、LocalDb。

在项目中创建了三个发布配置文件:DevDb.publish.xml、TestDb.publish.xml、LocalDb.publish.xml

按下 F5 按钮(!)我想:

  • 如果 构建配置为Debug ,则使用项目属性中的连接字符串部署项目。
  • 如果构建配置为 DevDbTestDbLocalDb ,则使用相应发布配置文件中的连接字符串发布项目。

为此,我编辑项目 (.sqlproj) xml,尝试捕获对 Deploy 目标的调用并用自定义行为替换标准 Deploy 目标:

第二条语句运行良好,我将部署到正确的目的地。

问题出在第一条语句上——它产生了循环依赖。

错误 MSB4006:在涉及目标“部署”的目标依赖图中存在循环依赖。

我的问题是:如何与标准目标相交(捕获和替换)以及是否需要再次调用标准目标?

还是我想重新发明轮子,还有另一种方法可以做我想做的事?(我想要的内容在上面的“按下 F5 按钮”下进行了描述:)

0 投票
2 回答
5201 浏览

visual-studio-2012 - SQL 数据库项目:根据构建配置构建不同的脚本

我要解决的问题是根据构建配置构建不同的脚本。

假设我们有两个 SQL Server 实例:

  • 带有连接的链接服务器的企业版
  • 用于离线开发和单元测试的 LocalDb 版本

当 LocalDB 用本地表替换这些视图时,企业版具有链接服务器的视图。

那些链接服务器视图和本地表具有相同的名称和字段集。因此默认情况下它们不包含在构建中(构建操作 = 无)。相反,它们包含在项目文件的 BeforeBuild Target 中的构建中。

但问题是 Visual Studio 缓存了 DB 模型,如果我们首先为 LocalDb 构建项目,然后尝试为企业配置构建项目 - Visual Studio 输出错误:

错误:SQL71508:模型已经有一个同名的元素

如果要关闭并打开解决方案或卸载项目并重新加载项目,Visual Studio 将重新创建 dbmdl 文件,并且正在构建企业配置而不会出现错误。

所以我的假设是如果我刷新 dbmdl 缓存,我会顺利构建而不会出错。


当您在 Visual Studio 2012 中打开或重新加载 SQL Server 数据库项目时,它会创建一个扩展名为dbmdl的文件,这是一个反序列化和缓存的数据库模型,如此所述。

在重新创建 dbmdl 文件时,Visual Studio 输出以下内容:

如何强制 Visual Studio 在不重新加载项目且不更改项目 xml 文件的情况下刷新 dbmdl 缓存?

有没有办法刷新 dbmdl 缓存,将命令放入项目 xml 文件的 BeforeBuild 或 AfterBuild 目标?

或者解决问题的整个方法是错误的,还有另一种方法可以根据构建配置构建不同的脚本?