c# - 未找到 MSBuild 社区任务

标签 c# visual-studio-2010 msbuild

我有 MyLib 库项目以及几个示例。库和示例在同一个解决方案 MySolution 中。

MyLib 库项目中,我包含了 MSBuild 代码来压缩整个解决方案并复制到另一个目录以进行 Internet 发布。

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
  <Target Name="AfterBuild" Condition="'$(Configuration)' == 'Release'">
    <PropertyGroup>
      <ReleasePath>C:\Users\Administrator\Projects\CA\Libraries\Api-DotNet\</ReleasePath>
      <ZipFile>C:\Users\Administrator\Projects\CA\WebProject\libraries\Api-DotNet.zip</ZipFile>
    </PropertyGroup>
    <ItemGroup>
      <LibraryFiles Include="$(ReleasePath)\**\*.*" Exclude="$(ReleasePath)\**\*.user;$(ReleasePath)\**\*.suo;$(ReleasePath)\Api.*;$(ReleasePath)\**\packages\**;$(ReleasePath)\**\Lib.Test\**;$(ReleasePath)\**\*.nuspec;$(ReleasePath)\**\*.nupkg;$(ReleasePath)\**\*nuget*;$(ReleasePath)\**\*internal*;$(ReleasePath)\**\*ReSharper*\**;$(ReleasePath)\**\.svn\**;$(ReleasePath)\**\obj\**;$(ReleasePath)\lib\bin\Debug\**;$(ReleasePath)\lib\bin\Publish\**;$(ReleasePath)\Example\**\bin\**;" />
    </ItemGroup>
    <Zip Files="@(LibraryFiles)" WorkingDirectory="$(ReleasePath)" ZipFileName="$(ZipFile)" ZipLevel="9" />
  </Target>  
</Project>

问题是,当用户下载库并在另一台计算机上运行时,编译器显示错误,即找不到导入库 MSBuild.Community.Tasks.Targets。我想在构建解决方案时从项目文件中排除 ZipAndCopy 代码。如何做到这一点?

最佳答案

将此 Condition 添加到 ImportZip 元素:

Condition="Exists('$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Commu‌​nity.Tasks.Targets')"

例如:

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"
        Condition="Exists('$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Commu‌​nity.Tasks.Targets')" />

与此类似:C# Checking if a Property 'Starts/Ends With' in a csproj

关于c# - 未找到 MSBuild 社区任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11627304/

相关文章:

c# - 调用许多网络服务的最佳方式?

c++ - 没有 MFC 的 VC++ 中的 ActiveX?

c# - VS2010 中的 winUserControl - 属性在设计器中不可见

visual-studio - 在 VS 2017 的自托管 VSTS-BuildAgent 上构建失败,错误为 "The TransformWebConfig task could not be loaded[...]"

visual-studio-2010 - 在64位构建服务器上将网站项目构建为32位

c# - UWP 10 C#。将文本文件读入列表<>

c# - 图像的模糊匹配部分

c# - MVC3 应用重定向到 ReturnUrl=%2f

.net - TryCast 在 DirectCast 工作的地方失败 (.NET 4.0)

visual-studio - 基于导入属性的 MSBuild 条件