- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我们尝试在启用Precompile during publishing 的情况下发布我们的 ASP.NET 应用程序时,它将失败,因为我们引用了 AssemblyInfo.cs
中的项目。文件。
这是我们的项目结构:
Project.WebUI (ASP.NET MVC App on .NET 4.6.2)
Project.Resources (Class Library on .NET 4.6.2)
Project.Domain (Class Library on .NET 4.6.2)
Project.Services (Class Library on .NET 4.6.2)
在AssemblyInfo.cs
在 Project.WebUI 中,我们像这样引用 Project.Resources:
using Project.Resources;
....
[assembly: AssemblyVersion(VersionInformation.FileVersion)]
[assembly: AssemblyFileVersion(VersionInformation.FileVersion)]
[assembly: AssemblyInformationalVersion(VersionInformation.ProductVersion)]
VersionInformation 类是 Project.Resources 中的静态类。
所有其他程序集的 AssemblyVersion
也有这些引用
当我们构建(调试或发布)时,它将毫无错误地通过。当我们发布 Project.WebUI 项目时,出现以下错误:
Severity Code Description Project File Line Suppression State
Error The type or namespace name 'Project' could not be found (are you missing a using directive or an assembly reference?) Project.WebUI Properties\AssemblyInfo.cs 3
Error The name 'VersionInformation' does not exist in the current context Project.WebUI Properties\AssemblyInfo.cs 34
Error The name 'VersionInformation' does not exist in the current context Project.WebUI Properties\AssemblyInfo.cs 35
Error The name 'VersionInformation' does not exist in the current context Project.WebUI Properties\AssemblyInfo.cs 36
我们的发布配置文件如下所示:
[X] Delete all existing files prior to publish
[X] Precompile during publishing
Precompile Options
[ ] Allow precompiled site to be updatable
[ ] Emit debug information
Merge Options
[ ] Do not merge
[ ] Do not merge. Create a separate assembly for each page and control
[X] Merge all outputs to a single assembly
"Project.Views"
[X] Treat as library component (remove the AppCode.compiled file)
为什么会出现此错误,我们该如何解决?
这是错误的输出日志:
------ Publish started: Project: Project.WebUI, Configuration: Release Any CPU ------
Connecting to C:\BuildArtifacts\...
Transformed Web.config using C:\Development\Project.WebUI\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
Copying all files to temporary location below for package/publish:
obj\Release\AspnetCompileMerge\Source.
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v \ -p C:\Development\Project.WebUI\obj\Release\AspnetCompileMerge\Source -c C:\Development\Project.WebUI\obj\Release\AspnetCompileMerge\TempBuildDir
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csc.exe /out:obj\Release\AssemblyInfo\AssemblyInfo.dll /target:library Properties\AssemblyInfo.cs
Properties\AssemblyInfo.cs(34,28): Error CS0103: The name 'VersionInformation' does not exist in the current context
Properties\AssemblyInfo.cs(35,32): Error CS0103: The name 'VersionInformation' does not exist in the current context
Properties\AssemblyInfo.cs(36,41): Error CS0103: The name 'VersionInformation' does not exist in the current context
Properties\AssemblyInfo.cs(3,7): Error CS0246: The type or namespace name 'Project' could not be found (are you missing a using directive or an assembly reference?)
最佳答案
显然在“发布”期间,csc.exe
尝试编译我们的 Project.WebUI
的 AssemblyInfo.cs
,但只有这个文件.因此它无法获得对 Project.Resources
的正确引用。
我同事带来的解决方案对我们有效:
AssemblyInfo.cs
文件中删除所有 Version 属性Project.Resources
项目中创建一个新文件,例如 AssemblyVersion.cs
该文件的唯一内容是这样的版本属性
[assembly: AssemblyFileVersion(VersionInformation.FileVersion)]
在每个其他项目中创建指向 AssemblyVersion.cs
的链接
关于c# - 引用 AssemblyInfo.cs 中的项目时发布预编译的 ASP.NET 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418666/
我有多个项目的解决方案。我想单独更新每个项目中的 AssemblyInfo.cs 文件。文件中的大部分信息都是相同的,但可能有一两处我想要不同。我一直无法找到一种方法来使用 Albacore asse
每次我为WPF创建一个新项目时,都会生成一个n Assembly Info.cs,但有几个“CS1010 Newline in Constant”错误。我每次都要去文件里手动编辑它们。我想永久解决这个
我在 AssemblyInfo.cs 中有以下代码: [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyFileVersion("1.0.
我正在使用 subversion 维护一个(主要是)C# 代码的应用程序。我想知道何时何地更新 AssemblyInfo.cs 文件以反射(reflect)产品发布时的版本号的最佳做法是什么。 假设我
其中包含多个项目的 NET 3.5 解决方案。有没有一种方法可以创建一个“全局”AssemblyInfo.cs,其中所有项目 AssemblyInfo.cs 都可以从中引用? 最佳答案 在解决方案根目
有没有办法在不将类加载到 AppDomain 的情况下以编程方式(在 C# 中)获取程序集信息(名称、描述、版本)?我只需要 list 中的信息,别无其他。Assembly.ReflectionOnl
我想向 AssemblyInfo 添加自定义属性,并且我创建了一个名为 AssemblyMyCustomAttribute 的扩展类 [AttributeUsage(AttributeTargets.
它在 C# 项目的 AssemblyInfo.cs 中说可以使用 * 指定版本信息 // Version information for an assembly consists of the fol
是否有可能通过 DateTime.Now.Year 在 AssemblyInfo.cs 文件中包含当前年份? 我试过了: [assembly: AssemblyCopyright("Copyright
我的问题非常基本:AssemblyInfo.cs 文件的用途是什么? 最佳答案 AssemblyInfo.cs contains information about your assembly, li
我有一个具有自定义构建步骤的构建,该步骤从存储库中读取文本文件并写入 build.version 配置参数。我正在尝试在这样的 AssemblyInfo 修补程序中使用该值:%build.versio
我正在 Visual Studio 中创建一个项目模板,我想让 AssemblyInfo.cs 文件更通用一些。我在我的项目中多次需要这些值,它们已在 Resources.resx 下定义。有什么方法
我们已将 #pragma warning disable 添加到所有 AssemblyInfo.cs 文件的顶部。不过,Visual Studio 2015 专业版中的内置代码分析会继续分析该文件。我
我有一个数据库表,用于存储窗口的高度、宽度、状态等。作为窗口的标识符,我使用表单的完整类型名称。它运作良好,但我发现一些通用形式的名称非常长。原因是通用类型列出了完整的程序集信息。有办法跳过吗? 例如
我的 AssemblyInfo 包含有关我的产品、公司等的信息。此数据当前硬编码在 cs 文件中: [assembly: AssemblyCompany("My Company.")] [assemb
默认的 AssemblyInfo.cs 如下所示: using System.Reflection; using System.Runtime.CompilerServices; using Syst
鉴于 Blah.dll 的 AssemblyInfo.cs 中的这段代码: [assembly: AssemblyVersion("3.3.3.3")] [assembly: AssemblyFile
我读过这个技术:Shared assembly info in VS projects - JJameson's blog 基本上这意味着创建一个包含有关程序集的版本信息的 SharedAssembl
我创建了一个适合我需要的 TeamCity 构建配置,请参阅下面的构建日志: 除了一件事之外,一切都很好 - 自定义版本号 .我的版本号格式如下: Major.Minor.BuildCounter.T
我曾经让 TeamCity + WiX + MSBuild 社区任务工作。现在我已经升级到 WiX 3.5,我不记得我是如何配置它的。 :) 当我浏览 TeamCity 时,我遇到了“Assembly
我是一名优秀的程序员,十分优秀!