Plone 5.1.4 - Installing Archetypes Content Types 2.3.8 breaks collective.documentviewer 5.0.0

Configuration: Plone 5.1.4 running on Linux Mint 19
Addons installed: collective.documentviewer 5.0.0, Products.ATContentTypes 2.3.8

From a fresh install of Plone 5.1.4 I added collective.documentviewer configured with celery, then uploaded a PDF file. I can view the file normally with documentviewer. Then adding ATContentType and attempting to view the file gives this error:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module collective.documentviewer.browser.views, line 49, in __call__
  Module plone.autoform.view, line 49, in _update
  Module plone.autoform.base, line 67, in updateFieldsFromSchemata
  Module plone.dexterity.browser.view, line 15, in schema
  Module zope.component._api, line 169, in getUtility
ComponentLookupError: (<InterfaceClass plone.dexterity.interfaces.IDexterityFTI>, 'File')

As background, I'm trying to get ECQuiz 2.0 to work on Plone 5, which is why I need Archetypes. I've tried newer versions of collective.documentviewer up to 5.0.4 but these broke immediately on trying to convert the PDF file on upload. Suggestions on how to proceed would be appreciated.

Here's my buildout.cfg:

[buildout]
projectname = plone5

extensions =
    mr.developer

show-picked-versions = true

parts +=
    instance
    zeo
    omelette
    zopepy
    scripts
    supervisor

# Change the number here to change the version of Plone being used
extends =
    base.cfg
    versions.cfg
    https://dist.plone.org/release/5.1.4/versions.cfg


versions = versions

# Add additional egg download sources here. dist.plone.org contains archives
# of Plone packages.
find-links =
    https://dist.plone.org/release/5.1.4
    https://dist.plone.org/thirdparty

# Add additional eggs needed for your project here
eggs =
    pdbpp
    celery[redis]
    collective.celery
    collective.documentviewer
#    Products.ECQuiz
#    archetypes.referencebrowserwidget
    
# Add here which products' zcml files will be loaded
zcml =

develop =
#    src/my.package
#     src/Products.ECQuiz
     
[versions]
# Solution for your setuptools problems
# https://community.plone.org/t/not-using-bootstrap-py-as-default/620
setuptools =
zc.buildout =

# Supervisor versions
supervisor = 3.3.1
collective.recipe.supervisor = 0.20
superlance = 0.14
meld3 = 1.0.2

fancycompleter = 0.7
pdbpp = 0.8.3
pyrepl = 0.8.4

# Required by:
# pdbpp==0.8.3
wmctrl = 0.3


collective.documentviewer = 5.0.0
# Required by:
# collective.documentviewer==5.0.0
repoze.catalog = 0.8.3



# celery
collective.celery = 1.0.6
redis = 2.10.5
amqp = 1.4.9
anyjson = 0.3.3
billiard = 3.3.0.20
celery = 3.1.18
elasticsearch = 2.3.0
kombu = 3.0.37

#Products.ECQuiz = 2.0
#Products.ATContentTypes = 2.3.9

# Port configuration
[ports]
instance = 8080
zeo = 8090

[instance]
recipe = plone.recipe.zope2instance
user = admin:admin
http-address = ${ports:instance}
debug-mode = on
verbose-security = on
event-log-level = debug
blob-storage = ${buildout:directory}/var/blobstorage

shared-blob = on
zeo-client = True
zeo-address = ${ports:zeo}

# Do not add eggs here
# for consistence-sake, please add them in the eggs
# option for buildout part. Only Zope and Plone eggs
# must be listed here. Thank you.
eggs =
    Zope2
    Plone
    ${buildout:eggs}


environment-vars =
   # Add here the languages of this site
    zope_i18n_compile_mo_files true
    TZ Europe/Madrid
    PYTHON_EGG_CACHE = ${buildout:directory}/var/.python-eggs
    CELERY_BROKER_URL redis://localhost:6379/0
    CELERY_RESULT_BACKEND redis://localhost:6379/1

# Do not add zcml here
# for consistence-sake, please add them in the zcml
# option for buildout part. Thank you.
zcml =
    ${buildout:zcml}

products =
    ${buildout:directory}/products

[zeo]
recipe = plone.recipe.zeoserver
zeo-address = ${ports:zeo}

[supervisor]
recipe = collective.recipe.supervisor
http-socket = unix
file = ${buildout:directory}/var/supervisord.sock
plugins = superlance
programs =
   10 zeo${buildout:projectname} (autorestart=true) ${buildout:directory}/bin/zeo [fg] true
   20 zope${buildout:projectname}${instance:http-address} (autorestart=true) ${buildout:directory}/bin/instance [console] true
   30 celery${buildout:projectname} (autorestart=true) ${buildout:directory}/bin/pcelery [worker ${instance:location}/etc/zope.conf]

eventlisteners =
   Memmon${buildout:projectname}${instance:http-address} TICK_60 ${buildout:bin-directory}/memmon [-p zope${buildout:projectname}${instance:http-address}=700MB -m support@server.com]
   MailMe${buildout:projectname}${instance:http-address} PROCESS_STATE_EXITED ${buildout:bin-directory}/crashmail [-p zope${buildout:projectname}${instance:http-address} -m support@server.com]


[omelette]
recipe = collective.recipe.omelette
eggs = ${instance:eggs}
products = ${instance:products}


[zopepy]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
scripts = zopepy

[scripts]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
scripts = pcelery

# Add here your develop eggs
# you can activate them using bin/develop
# for documentation about using git or svn urls, check
# http://pypi.python.org/pypi/mr.developer
[sources]

Products.ATContentTypes != Products.Archetypes.
It looks like "collective.documentviewer" is DX-only, so using ATContentTypes will never work.
Uninstall ATContentTypes and try again.

Well sure, uninstalling ATContentTypes makes documentviewer work, but I knew that. My problem is I need ATContentTypes for ECQuiz to work, but I also need documentviewer. I'm puzzled why ATContentTypes is breaking documentviewer.

It installs it's own "File" content type, so the DX FTI no longer exists.

ComponentLookupError: (<InterfaceClass plone.dexterity.interfaces.IDexterityFTI>, 'File')

You can still install Product.ATContentTypes without applying the profile. Maybe that's enough?

Ah of course, that makes sense. I'll give that a try. Thanks for responding.