asp.net – 如何在网站项目中使用发布配置文件(.pubxml)时设置As
我正在使用新的ASP.Net和Web Tools 2012.2发布网站配置文件(而不是Web应用程序).
我使用工具创建了一个发布配置文件,该工具在网站的根目录中创建了文件website.publishproj. website.publishproj文件包含以下内容: <AssemblyAttributes Include="AssemblyFileVersion"> <Value>$(AssemblyFileVersion)</Value> </AssemblyAttributes> <AssemblyAttributes Include="AssemblyVersion"> <Value>$(AssemblyVersion)</Value> </AssemblyAttributes> 这表明您可以将属性传递给MSBuild以设置输出dll的版本. 但是,网站的单个输出程序集(它已编译然后合并到单个程序集中)始终具有版本号1.0.0.0. 我试过传入/p:AssemblyFileVersion=2.1.0.0;AssemblyVersion=2.1.0.0,但这没有效果. 我甚至尝试直接编辑website.publishproj文件,但这也没有效果. 如果要将其合并到单个程序集中,是否有人知道如何在Web站点项目上设置输出程序集的版本号? 解决方法
我设法解决了这个问题.我认为这是工具的一个错误.
如果将OutputPath属性设置为website.publishproj文件中的相对路径,则不会遵循AssemblyVersion和AssemblyFileVersion属性. 这是由于在将网站程序集合并到一个程序集中时此版本控制的工作原理. 会发生什么是在部署期间生成AssemblyInfo.cs文件并输入提供的版本号.然后将此AssemblyInfo.cs文件编译为AssemblyInfo.dll,其中包含您传入的版本号. 然后使用copyattrs参数调用aspnet_merge.exe,该参数指向它先前生成的AssemblyInfo.dll. 如果将OutputPath设置为相对路径,则此copyattrs参数指向不存在的dll.这是因为它是从aspnet_merge.exe工具所在的路径运行的.因此,返回AssemblyInfo.dll程序集的相对路径找不到它的真实位置. OutputPath不能是相对的. 为了解决这个问题,我将我的设置为: <PropertyGroup> <OutputPath>$(MSBuildProjectDirectory)....TempPackageBuildDir&;/OutputPath> </PropertyGroup> 为什么还要设置OutputPath呢? 如果不设置OutputPath,它将使用环境变量中的临时目录.在我的情况下,这将导致构建失败,因为一些文件的文件长度超过了260个字符的窗口限制(我有一个非常大的网站).我完全可以构建它的唯一方法是将OutputPath设置为更浅的路径. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-2 – 如何使用Castle Windsor在MVC中注入UrlHe
- ASP.NET绑定与EVAL
- asp.net-mvc – 使用MVC w / Bundles时CSS中的相对路径无效
- ASP.NET奇怪的编译错误
- asp.net-mvc – 在模型验证之前获取Filter以执行
- asp.net – 具有复合键的Odata v3 Web Api导航
- asp.net – 如何隐藏程序使用的技术?
- asp.net – 错误4005表单身份验证失败 – 提供的故障单已过
- asp.net – 发布配置文件不会发布所需的构建配置(.pubxml.u
- 在IIS上部署ASP.NET Core项目的图文方法
- asp.net-mvc – ASP.NET MVC 4 Catch-all仅在本地
- asp.net-mvc – ASPNET MVC中的Modelbinding数据
- asp.net – 为什么我的动态添加控件会在Postback
- asp.net – 如何忽略Model属性的验证?
- 在ASP.NET Core MVC 6中记录到数据库
- ASP.NET Core在Azure Kubernetes Service中的部署
- asp.net-mvc-4 – 如何获取没有隐藏输入的AntiFo
- asp.net-core – 使用.net核心进行Hangfire依赖注
- ASP Classic中的HTTP身份验证(基本或摘要)通过II
- asp.net core标签助手的高级用法TagHelper+Form