有没有一种方法可以避免每个团队成员都安装“SQLite for WinRT”等VS扩展?

4
我们正在开发一个Windows Store C#/XAML应用程序,需要与SQLite数据库进行交互,并显示特定GPS坐标的Bing地图,除此之外还有其他功能。
“官方”方法是安装两个Visual Studio扩展- SQLite for Windows Runtime Bing Maps SDK。我对这种方法有两个问题:
  • 需要在每个团队成员的机器上单独安装它们。随着新电脑、VS重新安装以及人员进出项目,这可能会变得非常繁琐。
  • 更新。假设我安装了一个特定版本的扩展并提交了引用该特定版本的项目。然后,一个新的团队成员加入,我也需要在他的电脑上安装该扩展。然而,在此期间,Microsoft发布了一个更新版本的扩展,我无法下载旧版本 - 现在,因为有了一个新人,每个人都必须更新他们的扩展。
理想情况下,我希望能够将这些扩展程序放入SVN中。这样一来,它们只存储在一个地方,就不必频繁安装和更新了。我已经成功从SQLite扩展中提取了.dll文件,但是Bing Maps有一个.winmd文件和一个本地的.dll文件。我无法直接引用.winmd文件,而动态加载它也是不可能的,就像我所理解的那样。
有没有什么办法可以实现我的要求并避免所有列举的问题?我希望我忽略了什么,因为我不敢相信微软会决定这么愚蠢...

1
它们不是VS扩展。使用Nuget代替,将它们添加到您的项目中,然后检查它。 - Hans Passant
@HansPassant,您能否详细说明一下?我已经尝试在Nuget仓库中搜索Bing SDK和SQLite for WinRT,但没有找到。我相信它们只是VS扩展,因为它们是通过“工具”=>“扩展和更新”对话框引用的。如果有任何涉及此问题的在线资源,请提供相关链接,我感觉自己确实忽略了某些东西... - Nikola Anusev
2
@Hans SQLite和Bing Maps已作为VS扩展安装。对于SQLite,您有许多NuGet包可用,但需要先安装扩展程序,该扩展程序会安装x86、x64和ARM版本的dll,这些dll是RT开发所需的。对于Bing Maps也是同样的情况,只不过还需要添加JavaScript。 - jmservera
1个回答

2

是的,有一种方法。

您可以在Oren Novotny的博客文章中找到解释和示例:http://novotny.org/blog/how-to-use-extension-sdks-per-project

向这篇文章的作者致敬,它为我节省了大量的工作。 当我尝试在具有Bing Maps的项目中使用TFSBuild服务进行CI时,我遇到了同样的问题。我们无法在集成服务器上安装任何东西,因为它是基于云的,因此我不得不进行非常长时间的搜索才能找到解决方案。它涉及修改.sln文件并保持精确的文件夹结构将文件放入源代码控制中,但是当您正确执行所有这些操作时,它就像魔术般地运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接