2017-09-22 44 views
0

在Visual Studio和Visual Studio for Mac中跨平台Xamarin Forms项目。该项目参考Akavache。 Akavache依赖于akavache.sqlite3。我已经对akavache.sqlite3回购库中的DLL进行了自定义更改,并在本地构建了DLL,并且不希望将整个Akavache包树切换到所有Akavache dll和依赖项的定制构建。所以基本上......想继续像通常那样引用NuGet包,但是会“动态替换”一个DLL。或者类似的东西!如何使用通过引用的NuGet包发现的另一个DLL的定制版本?

但它也需要可移植。起初我使用了一个post build copy命令来覆盖被放入TargetDir的“标准”dll。这意味着它复制到TargetDir,但对于Android将该DLL复制到TargetDir没有任何好处。该DLL已被合并到TargetDir中的APK中。所以它需要以其他方式发生。如果您使用MSBuild而不是后期构建命令行,则会出现同样的基本问题。

有什么想法?

FWIW,我目前的解决方法是将DLL复制到高速缓存的NuGet软件包位置之上。但是这种方法的问题是缓存将被清除/更新,需要重新应用。当另一个开发人员想要在他们的机器上进行设置时,这也不是一个明显的步骤,或者很容易实现自动化。

+0

前缀'如果存在'将是一个简单的解决方案。 –

回答

0

任何.nupkg文件只是包含一些元数据的ZIP文件,因此您可以在内容中进行更改。 NuGet Package Explorer应该使它更容易查看内容。

NuGet Gallery(例如https://www.nuget.org/)在左侧有一个“下载”链接,否则只需将该软件包安装到一个空白项目中,然后窥视即可。

+0

Thx的想法。它并不知道软件包中的内容,它提供了一个系统来使用跨平台工作的自定义dll,并且不需要在不同的开发机器上进行大量的特殊设置。我将使用当前的解决方法更新帖子以获取更多信息。 – DennisWelu

相关问题