MSBuild社区任务文档

28

是我自己的问题还是这个项目文档真的很少?

我正在尝试查找如何使用FtpCreateRemoteDirectory和FTP功能,但似乎找不到任何内容。

谷歌搜索FtpCreateRemoteDirectory,只显示项目的源代码...

5个回答

25

文档确实像你所说的那样非常缺乏。

我发现最好的方法是在这里下载最新的源代码:https://github.com/loresoft/msbuildtasks

最新的文档也可以直接通过 GitHub 查看,而不需要下载源代码:https://github.com/loresoft/msbuildtasks/tree/master/Documentation

如果您使用 MSI 安装了该工具集,则还可以查看安装文件夹中的 XSD 文件(C:\Program Files (x86)\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.xsd),至少可以看到可用的任务以及与之相关的文档信息。


即使在.chm中搜索FtpCreateRemoteDirectory也没有结果 :( - Bertvan
1
但实际上,源代码是正确的选择:),谢谢! - Bertvan
4
在我看来,所有这些都应该放在一个网页上。太难跟踪.chm文件了。无法通过谷歌搜索.chm文件。 - NealWalters
1
也许有人可以编写一个MSBuild任务,以防止人们贡献没有文档的MSBuild任务? :-) 当然,它会遭受鸡/蛋悖论的困扰,但无论如何! - Steve L
链接到最新的Overview.html - Geoff

9

Github上的最新版本没有包含文档(问题#24)。

Tigris上的旧版本包含CHM文件形式的文档:在从项目下载页面安装MSBuild.Community.Tasks.msi后,文档位于安装文件夹中。典型路径为“C:\Program Files (x86)\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.chm”。


5
根据产品的最新版本,帮助文件并未存在于你提到的位置。我建议你把回答删除或更改为正确的位置。 - bsara
1
@Brandon:版本1.2.0.306(最新版)的安装包仍然包含了相同位置的文档。需要检查的事项:1. 下载二进制文件,而非源代码(即名称中不带版本号的软件包)。2. 确保在安装过程中启用文档功能(默认为启用状态)。3. 安装文件夹因系统而异(例如,在典型的32位操作系统上,它位于 C:\Program Files\MSBuild 下)。 - Edward Brey
2
安装了1.4.0.72版本的.msi文件,但没有包含.chm文件。 - Per Lundberg
@PerLundberg:不幸的是,较新的GitHub版本存在一个未解决的问题,即它们不包括文档。 - Edward Brey

8
文档很好,但完全缺失。 然而,代码真的很容易阅读——至少可以找到可用任务及其输入/输出。
我的做法如下:
  1. 安装类似于Jetbrains dotPeek(或其他免费的.NET Reflector副本)的.NET反编译器。

  2. PM> Install-Package MSBuildTasks(从VS) 或
    > nuget install MSBuildTasks(从命令行)

  3. 在上述提到的dotPeek中打开slnDir\.build\MSBuild.Community.Tasks.dll,导航到命名空间MSBuild.Community.Tasks并双击您感兴趣的任务。

  4. 收益!

enter image description here


4
确实,这个方法可行,但由于其为开源软件,你也可以查看源代码,正如答案中所述。 (https://dev59.com/6G865IYBdhLWcg3wi_I2#3762871) - Bertvan
在这种情况下,我发现最快的方法就是反编译。所有部件都已经在我的系统上(反编译器和汇编)。只需双击即可进入熟悉的界面,准备阅读代码。我发现在线获取相同的代码更难且更慢(项目主页在哪里?现在代码托管在哪里?Github/Codeplex/Bitbucket等的“浏览源代码”按钮在哪里?现在我需要的那个文件在哪里?) - Cristian Diaconescu
好观点。给你点赞 :) - Bertvan

3

我在查找同样的信息时发现了这个,所以可以提供一个完整的MSBuild目标的例子,它创建一个FTP文件夹,然后将内容复制到新位置。请注意,此示例上传到安全站点,因此您可能需要更改端口号以适应您的情况。

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />

  <Target Name="MSBuildFTP">    

    <PropertyGroup>
        <ftpHost>Your Host</ftpHost>
        <ftpUser>Your username</ftpUser>
        <ftpPass>you guessed it.. your password</ftpPass>
    </PropertyGroup>

    <Message Text="Create the directory if it does not exist - FtpUploadDirectoryContent fails if the dir does not exist" /> 
    <FtpCreateRemoteDirectory 
        ServerHost="$(ftpHost)"
        Port="21"
        Username="$(ftpUser)"
        Password="$(ftpPass)"
        RemoteDirectory="SSL/secure/"
        />

    <Message Text="Copy the contents of our directory to the ftp location" /> 
    <FtpUploadDirectoryContent
        ServerHost="$(ftpHost)"
        Port="21"
        Username="$(ftpUser)"
        Password="$(ftpPass)"
        LocalDirectory="deployment"
        RemoteDirectory="SSL/secure"
        Recursive="false"
        />
  </Target>
</Project>

1

您可以使用XSD检查可用选项。

干杯。


1
哪个XSD?MSBuild Community的Nuget包没有任何XSD。 - Cristian Diaconescu
你需要将以下行添加到C:\program files\Microsoft Visual Studio 10.0\Xml\Schemas\1033\Microsoft.Build.xsd中:<xs:include schemaLocation="MSBuild\MSBuild.Community.Tasks.xsd"/>它应该放在文件末尾,在</xs:schema>之前。 - Alex Klaus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接