Как организовать исходные файлы C # в подпапках? - PullRequest
0 голосов
/ 02 октября 2018

ПРЕДПОСЫЛКИ Я в основном программирую на встроенном C / C ++, но иногда мне приходится заниматься программированием на C # для нашего API.Для этого я использую Visual Studio 2017 для создания API-библиотеки API для наших клиентов.

API C # и наша прошивка C / C ++ используют общий набор кодов состояния.У меня есть скрипт Lua, который генерирует эти коды в файл .h (для C / C ++) и .cs (для C #), поэтому они всегда синхронизируются.

Все исходные файлы, которые совместно используются продуктами иПлатформы находятся в специальном проекте под названием «Общий» (зарегистрирован в Subversion).

Когда мы создаем новые проекты и используем любой «общий» файл, мы помещаем их в подпапку «Общий», такмы знаем, что бессмысленно с ними связываться.Subversion будет проверять эти «общие» файлы как внешние элементы определенной ревизии, используемой каждым проектом.

В C / C ++ совсем нет проблем, если исходный код организован в несколько уровней папок, все исходные файлы имеютотносительный путь к корневой папке проекта.

ПРОБЛЕМА Итак, в этом проекте C # я организовал исходный код как обычно:

ProjectRoot\source.cs
ProjectRoot\Common\EStatusCodes.cs

В ProjectRoot\у нас есть все файлы .cs для этого проекта C #, а в ProjectRoot\Common\ находятся внешние файлы из проекта Common в subversion.

Так что после извлечения внешнего EStatusCodes.cs в папку ProjectRoot\Common\ Iдобавьте его в проект C # с помощью «Add-> Add Existing ...», а затем я укажу на файл ProjectRoot\Common\EStatusCodes.cs.

Файл отображается в проекте, но по какой-то причине Visual Studio скопировалафайл из папки ProjectRoot\Common в папку ProjectRoot\ и затем используется копия!(Путь к файлу в свойствах указан в папке ProjectRoot\.

Так что, если мы добавим больше кодов состояния в проект «Общий», этот проект C # не получит обновление, поскольку Visual Studio теперь всегда используетскопированная версия файла из ProjectRoot\ и не волнует, обновлен ли ProjectRoot\Common\EStatusCodes.cs.

Я попытался добавить папку Common в «Свойства-> Ссылочный путь», но он все равно копируетфайл каждый раз, когда я добавляю его в проект.

Можно ли вообще иметь исходные файлы где-то еще, кроме корневой папки проекта C #?

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

У нас есть аналогичный способ в проекте C #: добавить существующий файл для проецирования как «Добавить как ссылку» .

Пожалуйста, обратитесь по этой ссылке для более подробной информации:https://grantwinney.com/visual-studio-add-file-as-link/

0 голосов
/ 02 октября 2018

В диалоговом окне «Добавить существующий» рядом с кнопкой «Добавить» должна быть маленькая стрелка вниз.Если вы нажмете на это, вы увидите опцию «Добавить как ссылку».Это добавит файл в качестве ссылки на исходный файл, и любые изменения в оригинале будут отражены в вашем проекте.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...