Как получить доступ к файлу конфигурации в библиотеке классов с веб-страницы, а также веб-форму

I have several projects some of which are web applications and some are windows applications.
I wanted to globalize my settings, something like Connection Strings because all the projects use the same connection string.
So I followed this example How to share custom application configuration settings across projects in .NET

мой XML-файл находится в библиотеке классов и упоминается в каждом проекте. Проект Windows отлично работает с файловым путем, который в проекте клиента выглядит примерно так:


      

      

    

Я также хочу, чтобы иметь возможность использовать этот XML-файл из веб-проекта. однако веб-проект не примет путь к этому файлу, как показано выше.

Каков наилучший подход или, скажем, лучшее решение для того, чтобы этот файл строки соединения был совместно использован как в веб-проектах, так и в проектах windows. Что я могу пройти?

something like ???`

1
nl ja de
Очевидно, что клиентские и веб-проекты не развертываются на одном компьютере. Веб-проект будет развернут по-разному. В атрибуте file = используются относительные пути, а для веб-проекта путь должен быть относительным локальным путем. Если этого недостаточно, вы должны более подробно рассказать о контексте веб-сервера.
добавлено автор yzorg, источник

2 ответы

Решение, которое мы используем, заключается в сохранении общих настроек в пользовательской папке под папкой CommonApplicationData (например, C: \ ProgramData в Windows7):

var commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
var settingsFilePath = Path.Combine(commonAppData, "MyProgram\\Settings.xml");
0
добавлено
Я хочу, чтобы этот файл был доступен как из веб-проекта, так и из проекта windows. этот файл содержит строки подключения, что означает, что библиотека классов (содержащая все классы) должна будет использовать эту строку соединения (из этого файла). на машине разработки приложение Windows может получить доступ к пути к файлу, то есть «f: \ classes \ ConnectionStringFile.xml», однако веб-форма нуждается в чем-то вроде «~ \ something \ ConnectionStringFile.xml». Как я могу это сделать, чтобы как веб-проекты, так и проекты win могли получить доступ к этому файлу из библиотеки классов?
добавлено автор Athar Anis, источник

file= accepts relative paths, and *.config files are excluded from ASP.NET and IIS static file rules, so it is safe to drop any *.config file into an ASP.NET site. Just put it next to the web.config file (root of the web app), mylibrary.config, and file="mylibrary.config".

0
добавлено
Я хочу, чтобы этот файл был доступен как из веб-проекта, так и из проекта windows. этот файл содержит строки подключения, что означает, что библиотека классов (содержащая все классы) должна будет использовать эту строку соединения (из этого файла). на машине разработки приложение Windows может получить доступ к пути к файлу, то есть «f: \ classes \ ConnectionStringFile.xml», однако веб-форма нуждается в чем-то вроде «~ \ something \ ConnectionStringFile.xml». Как я могу это сделать, чтобы как веб-проекты, так и проекты win могли получить доступ к этому файлу из библиотеки классов?
добавлено автор Athar Anis, источник
на основе вашего предлагаемого ответа, если я поместил этот файл конфигурации рядом с web.config, значит, этот файл конфигурации будет размещен в веб-проекте. где у меня есть этот файл конфигурации в библиотеке классов, на который ссылается веб-проект. а также, если я это сделаю, как мне получить доступ к нему из приложения Windows?
добавлено автор Athar Anis, источник
В файле web.config file = нет виртуальных путей (например, ~/dir/file.config), он принимает пути к локальной файловой системе (например, f: \ dir \ file.config), поэтому, если вы хотите использовать абсолютные пути, которые отлично, пока рабочий процесс, выполняющий веб-приложение, имеет разрешение ACL/NTFS для доступа к этому пути.
добавлено автор yzorg, источник
DotNetRuChat
DotNetRuChat
2 992 участник(ов)

Чат русскоязычного .NET сообщества http://dotnet.ru/ Вам могут быть интересны: @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @xamarin_russia, @microsoftstackjobs, @uwp_ru Флуд в @dotnettalks

Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

pro.net
pro.net
710 участник(ов)

Обсуждение .NET Framework и всего, что с ним связано. Правила: не флудить не по теме, уважать ваших коллег и никакой рекламы (объявления о вакансиях можно согласовать с @AlexFails). Флудилка: @dotnettalks Участник @proDOT

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

.NET Talks: Force Push Masters
.NET Talks: Force Push Masters
490 участник(ов)

Свободный чат .NET разработчиков. Правила: t.me/dotnettalks/56823 Вам могут быть интересны: @dotnetruchat, @dotnetchat, @cilchat, @fsharp_chat, @pro_net, @dotnetgroup, @xamarin_russia, @microsoftstackjobs, @uwp_ru http://combot.org/chat/-1001128250813

.NET Chat Убежище
.NET Chat Убежище
246 участник(ов)

Чат .NET разработчиков под эгидой MSK/SPB .NET Community Group Вам могут быть интересны: @fsharp_chat, @dotnetruchat, @cilchat, @xamarin_russia, @microsoftstackjobs, @dotnetgroup Флуд в @dotnettalks

.NET CIL Chat
.NET CIL Chat
54 участник(ов)

.NET CIL (aka IL aka MSIL)