Artifactory MSBuild NuGet插件依赖于子项目

时间:2015-02-09 15:13:22

标签: visual-studio msbuild nuget artifactory

我正在使用ArtiFactory MsBuild插件在我的持续集成构建中发布到NuGet存储库。

问题是,当我创建一个使用我的NuGet包的新项目时,它也会拉下ArtiFactory插件及其依赖项。项目代码不使用ArtiFactory,只使用构建过程。

如何更改我的包以不包含Artifactory插件及其依赖项?

我已尝试从我正在发布的项目中删除artifactory存储库,但它在CI构建上失败,因为MsBuild任务需要运行并且构建失败。

2 个答案:

答案 0 :(得分:1)

以下是此问题的两种解决方案:

  • 由于每个解决方案都安装了Artifactory插件,您可以在其中创建一个新项目,安装该项目的插件并将该项目的部署标志设置为false。这样就会安装插件,但插件的工件不会被上传。
  • 另一个(更明确的解决方案)是使用排除模式来排除神器dll及其依赖项。

答案 1 :(得分:0)

我使用了以下工作:

  1. 将文件从$(解决方案目录)\ packages \ Artifactory.1.0.0 \ lib \ net45复制到$(解决方案目录.artifactory
  2. 在Visual Studio解决方案中,将3个dll作为现有文件添加到.artifactory解决方案目录。
  3. 编辑.artifactory \ Deploy.targets文件并替换以下行:(第14行)
  4. 一个。

    <UsingTask TaskName="JFrog.Artifactory.ArtifactoryBuild" AssemblyFile="$(solutionDir)\packages\Artifactory.$(pluginVersion)\lib\net45\JFrog.Artifactory.dll" />
    

    <UsingTask TaskName="JFrog.Artifactory.ArtifactoryBuild" AssemblyFile="$(solutionDir)\.artifactory\JFrog.Artifactory.dll" />

    1. 将项目中的引用移至JFrog.Artifactory.dll,Microsoft.Web.XmlTransoform.dll和NuGet.Core.dll
    2. 从packages.config中删除JFrog.Artifactory.dll,Microsoft.Web.XmlTransoform.dll和NuGet.Core.dll的引用
    3. 从.nuspec文件中删除依赖项