【问题标题】:Calling a target from csproj file从 csproj 文件调用目标
【发布时间】:2014-12-05 23:55:57
【问题描述】:

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

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

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

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

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

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

希望这是有道理的

【问题讨论】:

    标签: c# msbuild clickonce


    【解决方案1】:

    我不太清楚你的意思,但我会仔细研究一下。

    要编辑您的 csproj,请在解决方案资源管理器中右键单击它,选择 卸载项目。然后,一旦它在解决方案资源管理器中变为灰色且不可用,再次右键单击它并选择 Edit [your project name]

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

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

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

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

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

    echo "我的发布网址是:'$(PublishUrl)'"

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多