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