c# - 从 csproj 文件调用目标

标签 c# msbuild clickonce

这个问题与我要发布的 clickonce 项目有关。

基本上,我希望运行一个针对每个测试环境执行发布的目标,以便我可以相应地设置 publishurl 和 publishdir。

构建项目时,我希望能够在不使用 DefaultTargets 或将其添加为 msbuild 参数的情况下调用这个新目标。如果没有这些步骤,我如何调用某个目标?

例如: 您可以从另一个目标调用一个目标,例如:

<Target Name="ClientPublish">
    <CallTarget Targets="PublishForEachEnv" />
</Target>

但是我如何直接从 csproj 调用 PublishForEachEnv 目标?

希望这是有道理的

最佳答案

我不太清楚你的意思,但我会尝试一下。

要编辑您的 csproj,请在解决方案资源管理器中右键单击它,选择卸载项目。然后,当它在解决方案资源管理器中变灰且不可用时,再次右键单击它并选择编辑[您的项目名称]

该文件是 XML 格式的,您可以在其中进行所有排序。如果您朝底部看,您会看到一些目标文件导入,您还应该看到 BeforeBuild 和 AfterBuild 各有一个空目标。您可以在此处添加对自定义目标的调用,AfterBuild 可能最适合您。您可以将自定义目标内联包含在 csproj 或导入文件中。

您必须返回解决方案资源管理器,右键单击该项目并选择重新加载项目,以使您的更改生效。

此外,还有另一种选择:添加一个构建后事件,将您感兴趣的值打印到构建输出窗口:

因此,这意味着解决方案资源管理器,右键单击该项目,选择属性、构建事件,然后编辑构建后。

你应该可以通过输入行来得到你想要的东西

echo "My publish URL is: '$(PublishUrl)' "

请注意,PublishUrl 在宏列表中不可用,但您仍然可以通过手动输入来使用它 - 该列表仅包含常用宏。

关于c# - 从 csproj 文件调用目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27326594/

相关文章:

visual-studio-2008 - VS 2008 中的解决方案级构建事件

.net - 将一次性应用程序替换为 msix 对应应用程序

clickonce - "Manifest XML signature is not valid"在客户端机器上但在开发者计算机上工作正常

c# - Visual Studio 2017 和 MySQL EntityFramework

c# - 使用 C# 对数字进行四舍五入

c# - WPF:在单击事件中更改动态创建的按钮的背景颜色

c# - MSBuild :Compile generator work 如何

MSBuild - 目标依赖导入

c# - ClickOnce 发送参数不起作用

C#:Button.Enabled如何绑定(bind)ListView是否有选中项