2016-04-26 2 views
0

У меня есть решение, содержащее проект C# Forms, который создает пользовательский интерфейс поверх родного .dll, который содержит большую часть кода моей программы.C# Project - Reference .pdb для native .dll

Я провожу большую часть своего времени, работая над исходным кодом, чем C#, а это значит, что DLL, загружаемая через мой проект интерфейса C#, очень часто изменяется, и поэтому это связанный файл .pdb, который мне нужен для отлаживая то, что я делаю.

Однако невозможно ссылаться на файл .pdb, как на ссылку .dll, так как я могу сделать это .pdb скопированным каждый раз, когда он изменен? Добавление его в качестве существующего элемента просто копирует его и не обновляет его при изменении исходного файла .pdb.

Два только решения, которые я вижу, генерируют .pdb-файл непосредственно в bin/debug C# вместо генерации его внутри собственного .dll-проекта, но я не уверен, что это возможно. Второе решение - добавить ссылку на этот файл .pdb в проект вместо фактического файла .pdb, но я не уверен, что он будет работать.

Есть ли обходной путь к этому? Я не мог найти. Спасибо.

+0

Разве вы еще не попробовали решение проблемы? Кроме того, в настройках проекта нет событий сборки? Вы можете скопировать файл там как Pre-Build Event (это то, что я мог бы сделать с MSVC++ 2010, который я имею здесь). – Aconcagua

+0

Вы считаете общую папку вывода для своего приложения и родной DLL? –

+0

@Aconcagua Я попробовал то, что вы предложили, а затем добавьте события после сборки, используя пакетные скрипты, и, похоже, это работает, если вы можете заставить пакет работать. Я думаю, что это чище, потому что это проект, который ссылается на то, что нужно, чтобы взять то, что ему нужно. Но так как я не могу заставить свои командные скрипты работать из-за странного способа обработки кавычек, и поскольку этот язык является огромным куском дерьма, которого никогда не было, я думаю, что просто изменим выходные каталоги .pdb в моем проекте DLL, который работает. Если вы сделаете свой комментарий, ответ немного подробнее, я приму его. – Virus721

ответ

0

MSVC предоставляет Build-Events (MSVC++ 2010: свойства проекта -> «Свойства конфигурации» -> «События сборки» –, однако это существует и для C# и в более поздних версиях MSVC, возможно, в другом месте). Вы можете определить события до и после сборки там (в случае C++, события предварительной привязки тоже).

Вы можете вызвать команды оболочки, вызвать пакетный скрипт или (если вы установили соответствующий интерпретатор) скрипты perl или python для событий. Изнутри такого скрипта (либо как пост-сборка для dll, копирование файла .pdb, либо –, что я бы предпочел лично – из проекта C# в качестве события предварительной сборки).

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