2

我最近检查了 ajaxuploader 许可证文件没有复制到 IIS 发布文件夹,我尝试了文件属性中的选项:Build Action = None / Content Copy to Output Directory = Copy Always

但是对于 .lic 文件,这似乎被忽略了

我还尝试使用 Xcopy 命令复制 .WEB 属性中的构建事件,但我无法解决问题。

有什么建议吗?

4

1 回答 1

5

我能够找出问题所在...

让我们去那里解决问题在webConfig中添加这些行:

<remove extension=".lic"/>
<add extension=".lic" type="System.Web.Compilation.ForceCopyBuildProvider"/>

它们应采用以下结构:

<Configuration>
   <System.web>
      <Compilation>
         <BuildProviders>
           <Remove extension=".lic"/>
           <Add extension=".lic"
               Type="System.Web.Compilation.ForceCopyBuildProvider"/>
         </BuildProviders>
      </Compilation>
   </system.web>
</Configuration>

通过分析发布输出,我发现 ajaxuploader.lic 文件无法被“aspnet_compiler.exe”解释,它不理解 .lic 并最终忽略它,如果您尝试将扩展名 .lic 更改为空或.exe , .txt 文件会上升,知道我在出版物中分析了它执行 aspnet_compiler.exe 时执行 trasnferencia:

文件夹:obj\Development\AspnetCompileMerge\Source 到文件夹:obj\Development\AspnetCompileMerge\TempBuildDir

在 Source 文件夹中,.lic 文件已经存在于 TempBuildDir 文件夹中,它消失了,问题本身是在使用 source -> target (TempBuildDir) 执行命令 aspnet_compiler.exe 时,没有复制 .lic 文件,因此放置了密钥在 Webconfig 中专门用于在运行 aspnet_compiler.exe 之前删除 .lic 扩展名,然后将 .lic 添加到文件中。

拥抱

于 2017-03-30T19:05:36.800 回答