Как обратиться .xproj в .csproj?
У меня есть проект .csproj
, и я хочу ссылаться на другой проект .xproj
, все выглядит нормально, но когда я пытаюсь построить решение, я не могу, потому что .dll отсутствует. Когда я ссылаюсь на .dll
от \bin\release\net452\...
, тогда все в порядке. Как это исправить?
EDIT: я не ищу обходные пути - теперь я использую gulp с gulp.move(). Он отлично работает, но он чувствует себя грязным...
Ответы
Ответ 1
Невозможно напрямую ссылаться на xproj из csproj.
У вас есть 2 возможных решения.
A) Разверните xproj как пакет NuGet и используйте пакет NuGet в вашем csproj.
B) Преобразуйте свой csproj в xproj.
Примечание. xproj должен поддерживать ваш используемый .NET csproj. net451 и т.д.
Здесь пример csproj, ссылающийся на пакет xproj NuGet
https://github.com/damienbod/ElasticsearchCRUD/tree/master/samples/ConsoleElasticsearchCrudExample
Ответ 2
XProj мертв. Используйте портативную библиотеку классов (csproj), а затем установите ее в .NET Standard и уровень, который вы хотите использовать для обеспечения совместимости. Тогда будет создан project.json(который, скорее всего, будет переименован позже), и csproj все равно будет там, тем самым упрощая добавление ссылки, и оно просто работает.
Если вам нужна перекрестная совместимость, единственный способ сделать это - сделать выше, а затем добавить существующий проект в случае основного решения .NET и выбрать файл project.json вместо .csproj. Это также создаст xproj. Однако обратите внимание, что xproj/project.json будет поддерживать мультитаргетинг, но .csproj не будет, и вы нарушите пользовательский интерфейс для свойств проекта, если попытаетесь. (он все еще работает, но пользовательский интерфейс мертв)
Ваша единственная альтернатива - связать с dll не проект. Вы можете использовать xproj, поместить в целевые объекты, а затем добавить ссылки и выбрать DLL с просмотром.