2014-11-03 29 views
1

我有一个NuGet包(MyPkg),它包含依赖于另一个包(AnotherPkg)中的构建任务的构建目标。 AnotherPkg具有该构建任务DLL的工具目录。在NuGet行为之后,DLL被安装到\ packages \ AnotherPkg.0.1.1 \ tools从另一个包引用NuGet包的工具

我想知道是否有正确的方法来引用AnotherPkg的工具路径并使其版本不可知。例如,我希望软件包用户能够将AnotherPkg升级到0.1.2,而不必在我的软件包中更改任何内容。

我有一些代码可以试着找到AnotherPkg的目录......但它看起来有点片状,如果AnotherPkg尚未安装,项目可能无法加载。

<ItemGroup> 
    <AnotherPkgDll Include="$(SolutionDir)\packages\AnotherPkg.*\tools\AnotherPkg.Tasks.dll" /> 
</ItemGroup> 
<UsingTask AssemblyFile="@(AnotherPkgDll)" TaskName="Whatever" /> 

其他提示?我希望我错过某种NuGet函数来获取这些信息。

+1

不要依赖$(SolutionDir),如果没有解决方案文件,您将无法在命令行上构建。请使用$(MSBuildThisFileDirectory).. \ AnotherPkg。*,并考虑使用用户可定制属性来修复AnotherPkg的版本号,如AnotherPkg。$(AnotherPkgVersion)\ tools \ AnotherPkg.tasks – 2014-11-05 06:08:53

回答

-1

我试图在我的软件包中使用的软件包位于Github上。所以我修改了它并提交了一个拉取请求。 :)