Развертывание Visual Studio ASP.NET Web - все страницы, ссылающиеся на пользовательские библиотеки, выдают ошибку 404 - PullRequest
0 голосов
/ 26 июня 2018

У меня есть приложение в ASP.NET Framework 4.6.1, созданное с помощью Visual Studio 2017 (версия 15.7.27703.2035). Сам проект работает на 100% нормально на localhost. Этот проект содержит 3 библиотеки ASP.NET Framework 4.6.1, на которые есть ссылки в основных проектах.

enter image description here

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
    <UserSecretsId>...</UserSecretsId>
    <WebProject_DirectoryAccessLevelKey>0</WebProject_DirectoryAccessLevelKey>
  </PropertyGroup>

  ...

  <ItemGroup>
    <ProjectReference Include="..\CrmDatabaseManager\CrmDatabaseManager.csproj" />
    <ProjectReference Include="..\SysaidDatabaseManager\SysaidDatabaseManager.csproj" />
    <ProjectReference Include="..\UserInterfaceLibrary\UserInterfaceLibrary.csproj" />
  </ItemGroup>

  ...

</Project>

После публикации проекта выясняется, что на каждой странице, ссылающейся на одну из пользовательских библиотек, выдается ошибка 404, все остальные страницы работают нормально.

Проблемы возникли, когда я добавил эти библиотеки в проект.

Есть ли какая-либо причина, по которой библиотеки не будут правильно развернуты?

1 Ответ

0 голосов
/ 26 июня 2018

Оказывается, что разделение проекта с библиотеками не дало ссылок на пути.

Я жестко запрограммировал путь, и с ним не было проблем в основном проекте. Когда я разбил проект на библиотеки, это вызвало ошибку 404.

Чтобы получить доступ к файлу в библиотеке, сначала нужно выполнить следующие манипуляции:

  1. Щелкните правой кнопкой мыши файл> Свойства
  2. Вкл. Действие построения , выберите Всегда копировать файл

Затем укажите путь к библиотеке следующим образом:

var buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var filePath = buildDir + @"\fileName.json";

using (StreamReader r = new StreamReader(filePath))
{
   // code here
}
...