问题标签 [aspnet-compiler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
420 浏览

iis-7 - asp.net 本地化资源 dll 不在临时 asp.net 互联网文件中创建

我们将本地化资源存储在与 Web 应用程序不同的程序集中。在使用 xcopy 部署到我们的 Web 服务器后,aspnet_compiler 不会生成本地化的卫星 resources.dll 文件(在临时 asp.net 文件中)。

有时,如果我们启动/停止应用程序池,它们会被创建,但对于何时发生这种情况似乎没有任何一致性。

关于在哪里/寻找什么来解决这个问题有什么建议吗?

0 投票
2 回答
2324 浏览

.net - 为什么我需要用于 AspNetCompiler 任务的 VirtualPath 属性

我正在尝试为网站编写构建系统,以便我可以进行一键构建。我从源代码存储库中获取了一份干净的代码副本,然后使用 msbuild 运行 AspNetCompiler 任务来完成网站的所有预编译。

令我困惑的是我需要指定一个 VirtualPath 或 MetabasePath。我没有元数据库路径——我只想将它编译到本地目录中,然后可以将其部署到选择的任何服务器(即首先是开发服务器,然后是实时服务器)。

VirtualPath 很棘手,因为我希望将相同的代码部署到多个位置——代码使用一些上下文和配置细节来计算其 SiteID 以显示不同的信息——因此指定单个虚拟路径似乎并不明智。

沿着类似的路线还有其他各种问题(例如AspNetCompiler MSBuild Task 中的 VirtualPath - 它是否必须等于最终部署的虚拟路径?)但我发现的唯一答案似乎更具轶事 - 即他们只是说这似乎对他们的经历没有影响。

但是,我不敢相信它真的没有任何区别。必须在某些情况下使用它,否则它不会存在并且不需要。

那么有人知道(最好有参考)这是做什么的吗?将组成的虚拟路径传递给任务可能会导致什么问题?

0 投票
1 回答
2785 浏览

asp.net - 为什么这个对 aspnet_compiler 的调用不会产生新的 .NET 程序集?

我正在尝试让 Visual Studio 预编译将部署在 Azure 上的 ASP.NET 应用程序。我已将以下内容添加到我的 .csproj 文件中:

现在,当我要求 Visual Studio 准备服务包时,生成输出中会出现以下内容:

如果我在任何视图文件中植入错误,则会识别出错误并如此清楚地破坏构建,则执行预编译。

然而,我在结果中的任何地方都看不到任何新的 .NET 程序集。

如何让 ASP.NET 编译器为视图创建 .NET 程序集?

0 投票
2 回答
265 浏览

asp.net - 运行部署项目给我“某事”不是有效的虚拟路径

当我运行部署项目时,我有一个 Web 应用程序的部署项目,它给了我这个错误 Error 443 'http:/localhost:54333/Content/XXXX/XXXXXX/XXXXXX.ascx' is not a valid virtual path。谢谢

0 投票
1 回答
1715 浏览

.net-4.0 - msbuild ASPNETCOMPILER ASPNETRUNTIME startIndex 错误

我有一个在 Windows 7 上构建良好且没有错误的 Web 项目。当我升级到 Windows 8 时,将项目编译成已编译的网站会引发错误。从 csproj 文件编译(不创建网站)可以正常工作。这是 msbuild 引发的实际错误

ASPNETCOMPILER : 错误 ASPRUNTIME: startIndex 不能大于字符串的长度。[mycsproj.file.here]

msbuild 正在运行的引发错误的行是

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v / -p my.physical.project.path -u my.physical.project.path\buildartifacts\CompiledWebsite

我也可以通过运行带有 -errorstack 标记的 aspnet_compiler 来获得堆栈跟踪,这就是它生成的

我该如何解决?由于堆栈跟踪,我认为它与程序集名称有关,但我无法终生弄清楚如何修复它。有人可以帮我吗?

0 投票
2 回答
2567 浏览

c# - 避免 aspnet_compiler 运行 PreApplicationStart 方法

所以,我的一个网站有一个 PreApplicationStartMethod 应该在应用程序启动之前运行:

此方法执行一些引导并依赖于设置的某些配置。

现在,我想编译网站作为我的自动构建过程的一部分 - 所以我调用 aspnet_compiler.exe,它失败了,因为它运行 PreApplicationStartMethod:

AfterBuild:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe -v temp -p C:\Projects\ error ASPRUNTIME : 应用程序启动前初始化方法 Start on type RedactedNameSpace.ServiceStackAppHost 抛出异常以下错误消息:依赖项解析失败,类型=“...”

如何避免 aspnet_compiler.exe 在编译网站时调用 PreApplicationStartMethod?

0 投票
2 回答
1180 浏览

c# - 为什么 ASP.NET 编译器在每次构建中都重建所有二进制文件?

当我使用 aspnet_compiler 重新编译我的项目(asp.net、c#)时,即使没有进行任何代码更改,重建的二进制文件也会发生变化(与以前的构建相比)。

据我了解,这是由于构建每次构建时都会生成一个新的模块版本 ID(guid)(以区分构建),另一个类似的问题谈到了这一点:我可以在构建时指定模块版本 ID(MVID)吗? .net 程序集?

上面链接的问题似乎表明没有办法重建项目并让二进制文件与先前构建的相同未更改代码相匹配.. 好的,很好,我理解 - 但为什么要重建所有二进制文件?

我认为,根据文档(http://msdn.microsoft.com/en-us/library/ms229863(v=vs.80).aspx),除非 -c 被指定为参数,否则 aspnet_compiler 应该只重建那些实际需要的二进制文件(由于更改的代码)。我是误会还是遗漏了什么?

我正在使用的 aspnet_compiler 参数:

请注意,此问题仅发生在网站项目中,而不是 Web 应用程序项目(它们的编译方式不同)。即使您创建了一个没有功能的网站项目和页面,并且在构建之间以任何方式打开或更改它,也会出现此问题。

反编译生成的二进制文件显示没有差异。比较两个“相同”构建的二进制文件每次都会显示二进制文件的同一部分存在微小差异 - 我认为这可能与随机构建 guid 有关。我发现无法避免构建之间的这种变化。

0 投票
1 回答
859 浏览

c# - 如何在不涉及 Visual Studio 的情况下编译 C# 解决方案?

我是一个根本不特别喜欢 Visual Studio 的人,我更愿意使用我高度配置的 gvim 来编辑代码,而不是被隔离在 IDE 中。

因此,我的目标是找到一种方法来为 Web 应用程序编译 C# 代码,而不需要我只需要偶尔使用的臃肿的 >2gb 怪物。

目前,我可以使用以下批处理脚本编译现有代码:http: //www.codeproject.com/Questions/495608/howplustopluspublishplussiteplususingplusaspnet_co

问题在于需要项目文件和解决方案文件。有没有办法隔离这些是如何生成的(如果我可以获得 Visual Studio 使用的现有脚本,我可以在自动化脚本中使用远程机器的副本)或自己生成它们?

或者,有没有办法为较小的项目和个别形式绕过它们?不幸的是,我对 aspnet_compiler 的了解有限。

0 投票
0 回答
421 浏览

asp.net - 为什么 aspnet_compiler 会找到多种类型?

我正在尝试使用 aspnet_compiler 编译我们的网站。不幸的是,我收到了这个错误:

显然,aspnet_compiler 认为该Website.Container类型存在于多个程序集中。 Website.dll是我们网站的预编译程序集之一。我相信App_Web_maop0n3g.dll是由 aspnet_compiler 创建的程序集。

我搜索了我们的代码库,找不到任何重复的Website.Container控件。似乎 aspnet_compiler 正在使用此控件创建一个新程序集,而不是使用预编译的定义。清除临时 ASP.NET 缓存并不能解决问题。

我该如何调试这个问题?

0 投票
1 回答
565 浏览

asp.net - 为什么 aspnet_compiler 以可更新标志成功,但否则失败?

我们正在研究预编译我们的网站以缩短网站启动时间的可行性。我们试图避免的是csc.exe用户访问网站时的任何调用。当 csc.exe 运行时,IIS 不会为任何额外的 HTTP 请求提供服务。这限制了我们向网站发布新二进制文件的频率和速度,因为部署代码和预热我们场中的每个 Web 服务器需要数小时。

我已经aspnet_compiler.exe以可更新模式(即使用-u标志)编译站点,但经过测试,看起来 IIS 仍在调用csc.exe编译控件/页面。

因此,我尝试不使用该-u标志,但现在出现编译错误:

当我打开/Tool/Controls/ToolCustomDateRantPicker.ascx时,它SharedControls:DateRangePicker正确引用:

是什么赋予了? 为什么aspnet_compiler我的网站在可更新时可以正确编译,但在编译时却失败了,因此无法更新?