asp.net-mvc - Visual Studio ASP.NET Web 部署 - 每个引用自定义库的页面都给出错误 404
问题描述
我在使用 Visual Studio 2017(版本 15.7.27703.2035)构建的 ASP.NET Framework 4.6.1 中有一个应用程序。该项目本身在 localhost 上可以 100% 正常运行。此项目包含在主要项目中引用的 3 个 ASP.NET Framework 4.6.1 库。
<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,所有其他页面都正常工作。
当我将这些库添加到项目中时,问题就出现了。
库无法正确部署有什么原因吗?
解决方案
事实证明,使用库拆分项目确实破坏了路径引用。
我正在对路径进行硬编码,并且在主项目中没有任何问题。当我用库拆分项目时,它导致了错误 404。
要访问库中的文件,您需要先执行以下操作:
- 右键单击文件>属性
- 在Build action上,选择Always copy the file
然后在库上以这种方式指定路径:
var buildDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var filePath = buildDir + @"\fileName.json";
using (StreamReader r = new StreamReader(filePath))
{
// code here
}
推荐阅读
- css - 将鼠标悬停在图像上时应用变换
- python - 根据2个数据框关系在特定列中写入超过nan值的数据框列
- java - 使用 LibHoudini 在 x86 架构上运行本机 ARM 库
- ios - 我是否必须注册并向 Apple Developer 付款才能创建适用于 iOS 的应用程序
- python - 损失值在 LSTM 训练中变化
- php - 如何在表格视图中回显数据
- node.js - 如何在 react 和 node.js 中将数据从客户端发送到服务器?
- python - 来自 Tensorflow 教程“使用 TF Hub 进行文本分类”的 UnicodeDecodeError
- javascript - Rails、Webpacker 和 Turbolinks - Javascript 在离开页面或完全重新加载之前不会加载
- r - 如何从 R 中的 GGPLOT 打印低于某个 X 值的值?