asp.net - Web Deploy 发布 snk 文件
问题描述
我正在使用 Visual Studio 2017 开发和发布使用针对 IIS 的 Web 部署的 ASP.NET Web 应用程序。我的 Web 应用程序集已签名,因此我的项目在根文件夹中包含一个 .snk 文件。当我将 Web 应用程序部署到服务器时,也会发送 .snk 文件。
我想这不是一个好主意,因为 .snk 包含一个必须保持安全的私钥。我不喜欢将 .snk 文件的副本分散在各种 Web 服务器上的想法。据我了解,Visual Studio 应该在构建解决方案时使用此文件对我的程序集进行签名,而不是将其部署到服务器。
我对么?如果是这样,我如何阻止 Visual Studio 将此文件部署到服务器?
解决方案
除非另有说明,否则 IIS 不会将 SNK 文件作为有效的 MIME 类型提供。当有人在浏览器中键入文件的 url 时,他们将得到 404。
如果您不希望它首先发送到服务器,您也可以从 Visual Studio Explorer 中将其删除,但仍将文件保留在文件夹中(注意 VS 也会删除该文件,因此您需要将其复制到在 Windows 资源管理器中再次手动创建文件夹)。
更简洁的解决方案是创建一个wpp.targets
文件并指定要在发布中排除的文件/文件夹。
在您的情况下,文件看起来像这样:MyProject.wpp.targets
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ExcludeFromPackageFiles Include="MyFile.snk">
<FromTarget>MyProject.wpp.targets</FromTarget>
</ExcludeFromPackageFiles>
</ItemGroup>
</Project>
推荐阅读
- excel - 循环通过 Outlook VBA 代码的条件时出错
- python - Spyder-IDE - *.py 脚本不向变量资源管理器添加变量
- flutter - 小部件测试使用 WidgetsBinding.instance.addPostFrameCallback() 的小部件
- vue.js - NUXT的SPA模式可以设置内容安全策略吗
- ios - VoiceProcessingIO 的 AVAudioPlayer 音量低
- java - 在java中用多态替换条件
- javascript - Vuejs在父更新发送给子组件时更新子组件的数据
- import - HBase ImportTsv 调优
- python - 即使已经安装了 Pillow,也无法导入 PIL.Image?
- excel - 这是什么文件格式,制表符用 ="" 围绕字段和标题分隔