在某种程度上,我在这里寻找最佳实践。
我有一个由我的许多应用程序共享的公共项目。这个项目有 FlurryAnaylics 和 ATMHud DLLs 作为参考。
如果我不在主项目中引用这些 DLL,应用程序将经常(但并非总是)在调试到设备测试中失败。在调试到模拟器中,我不需要将这些 DLL 添加到主项目中。
所以,问题是:我是否必须在子项目中一直包含对主项目中的 DLL 的引用?
在某种程度上,我在这里寻找最佳实践。
我有一个由我的许多应用程序共享的公共项目。这个项目有 FlurryAnaylics 和 ATMHud DLLs 作为参考。
如果我不在主项目中引用这些 DLL,应用程序将经常(但并非总是)在调试到设备测试中失败。在调试到模拟器中,我不需要将这些 DLL 添加到主项目中。
所以,问题是:我是否必须在子项目中一直包含对主项目中的 DLL 的引用?
只要有可能,我就使用对项目文件(csproj 文件)的引用而不是对程序集(.dll)的引用。它使很多事情变得更容易,例如:
例如
解决方案1.sln
解决方案2.sln
Common.sln
大型解决方案可能会因此而受到影响(构建性能、跨文件搜索......)。它们越大,每个人都不太可能了解它的每个部分。因此,优势的回报会减少,而不便会随着每个项目的添加而增加。
例如,我不想引用 Mono 中的每个框架程序集(但我个人可以使用 MonoTouch 的所有 SDK 程序集;-)
注意:使用程序集引用不应导致您在设备上调试时出现随机错误。如果您可以创建这样的测试用例,请填写错误报告 :-)