2012-07-03 1 views
0

Я работаю над тестовым жгутом для интеграции, который предлагает разработчикам возможность выполнять методы либо против нашей базы данных интеграции, либо из базы данных SQLite в памяти.Как я могу ссылаться на dll без каких-либо публичных пользователей?

Поскольку ни один из фактического кода SQLite не ссылается моей упряжке, я должен добавить фиктивный код, чтобы гарантировать, что MSBuild копирует библиотеки DLL:

namespace References { 
    internal interface IReferenceUnusedDependencies { 
     SQLiteException e { set; } // Reference System.Data.SQLite.dll 
     IMappingEngineRunner r { set; } // Reference AutoMapper.dll 
    } 
} 

Однако, я не могу понять, как ссылаться на код от System.Data.SQLite.Linq.dll - все классы и интерфейсы, которые он содержит, являются внутренними.

Возможно ли сделать эти ссылки каким-то образом?

+0

Просто отметьте ссылку как «копировать всегда», это не имеет ничего общего с публичными/частными членами. –

+0

Где я могу пометить ссылку «копировать всегда»? – arootbeer

+0

В файле проекта. http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx –

ответ

0

Добавить это свойство сборки для основного проекта

using System.Runtime.CompilerServices; 
[assembly: InternalsVisibleTo("MyTestDLLName")] 

Перечитывая эту проблему, вы просто должны скопировать ссылки сборки на свой бункер?

Если это так, вы можете выбрать копию для свойства в Visual Studio (которая, в свою очередь, использует MSBuild) в разделе Свойства элемента из проводника решений.

Выберите ссылку в папке «Ссылки», а затем выберите «Копировать локальную». (Также доступны другие свойства MSBuild)

+0

To 'System.Data.SQLite.Linq'? – arootbeer

+0

Но разве это не относится только к вашим сборкам? Что делать, если это сторонняя сборка? Такая же сделка? –

+0

@JeffMercado да, это для внешних сборок, которые вы хотите явно иметь доступ к своим внутренним устройствам. – James

 Смежные вопросы

  • Нет связанных вопросов^_^