今天提出了一个问题,我没有明确的答案.
假设我们连接并缩小所有资源文件(CSS和Javascript)并在"Master-Page"中声明它们.
在多页面应用程序中,如果CSS文件发生更改,它将在下一次整页加载时重新充值.
在单页面应用程序中,用户可以继续工作数天,并且永远不会为声明CSS文件的主页面充电.在发出Ctrl-F5之前,用户永远不会看到更改.
我敢肯定有人已经想到这一点,并有经验分享:)
对我来说,使用WebSockets不是一种选择.首先是因为它太过分,因为并非所有客户都支持这项技术.同样的原因也适用于所有WebSocket后备......因此我不会继续打我的服务器.
那么,任何人的想法?:)
顺便说一句,我们正在使用AngularJS,如果它可以帮助一个特定的解决方案.
谢谢!
MSDN文档说明:
版本号由两到四个组件组成:主要,次要,构建和修订.主要和次要组件是必需的; 构建和修订组件是可选的,但如果定义了修订组件,则需要构建组件.所有已定义的组件必须是大于或等于0的整数.
版本号的格式如下(可选组件显示在方括号([和])中:major.minor [.build [.revision]]组件按惯例使用如下:
Major:具有相同名称但主要版本不同的程序集不可互换.较高的版本号可能表示无法假定向后兼容性的产品的重大重写.
轻微:如果两个程序集上的名称和主要版本号相同,但次要版本号不同,则表示具有向后兼容性的显着增强.较高的次要版本号可能表示产品的点发布或完全向后兼容的新版本产品.
构建:构建号的差异表示对同一源的重新编译.当处理器,平台或编译器发生更改时,可能会使用不同的构建号.
版本:具有相同名称,主要版本号和次要版本号但不同版本的程序集应完全可互换.可以在修复先前发布的程序集中的安全漏洞的构建中使用更高的修订版号.
仅由构建号或修订号不同的程序集的后续版本被视为先前版本的修补程序更新.
我的问题是关于在这种情况下术语构建和修订的含义.
在我看来,一般来说,当源头发生变化时,我们会"建立".因此,"建立678"和"679建立"是不同的正是因为源以某种方式不同-通常作为一些改变的源的检入的结果.在我看来,.NET定义使用"修订版"的方式通常使用"构建".
有人在他们的版本控制中使用上面的定义吗?如果是这样,你能举出具体的例子说明你做了什么?
鉴于Blah.dll的AssemblyInfo.cs的这个片段:
[assembly: AssemblyVersion("3.3.3.3")]
[assembly: AssemblyFileVersion("2.2.2.2")]
Run Code Online (Sandbox Code Playgroud)
然后在一个单独的.exe中:
var fileInfo = FileVersionInfo.GetVersionInfo("/path/to/Blah.dll");
fileInfo.ProductVersion == fileInfo.FileVersion == true;
Run Code Online (Sandbox Code Playgroud)
其他SO问题显示ProductVersion是"正确的",如果对我如何使用它有些奇怪的话会很奇怪.
ProductVersion不应该是"3.3.3.3"而FileVersion应该是"2.2.2.2"吗?什么会导致它将这两个属性报告为AssemblyFileVersion?
在我看到的nuspec版本控制文档中
1.0 = 1.0 ? x
(,1.0] = x ? 1.0
(,1.0) = x < 1.0
[1.0] = x == 1.0
(1.0) = invalid
(1.0,) = 1.0 < x
(1.0,2.0) = 1.0 < x < 2.0
[1.0,2.0] = 1.0 ? x ? 2.0
empty = latest version.
Run Code Online (Sandbox Code Playgroud)
我有一个packages.config看起来像这样的
<packages>
<package id="psake" version="4.2.0.1" />
</packages>
Run Code Online (Sandbox Code Playgroud)
我想将版本更改为"最新".
我试过了两个
<packages>
<package id="psake" version="" />
</packages>
Run Code Online (Sandbox Code Playgroud)
和
<packages>
<package id="psake" />
</packages>
Run Code Online (Sandbox Code Playgroud)
但两者都导致了 Unable to parse version value '' from 'packages.config'. …
通常,bower.json文件指定一些依赖关系,但通常表达这些依赖关系,以便它们允许使用一系列版本的bower包(例如>=1.0,这意味着任何高于1.0的版本).
我有一个自动化流程,需要立即找到该系统上实际安装的bower包的版本.
如何以编程方式(仅版本本身)找到它,理想情况下使用标准的Unix命令行工具/ bower命令?
bower info <thepackagename>并没有表明这一点-它显示了什么是当前可从凉亭库信息(例如,即使我做bower info apackageIdonthaveinstalled它仍然会显示一个包含版本号的有效的JSON结构).
cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version适用于某些软件包(假设json安装了npm软件包),但并非全部(例如jquery 2.2.0的bower软件包不包含bower.json).
我试图在Windows机箱上使用cPickle,使用Anaconda.我使用的是python 3.5.我没有使用virtualenv(虽然可能应该).
当我尝试导入cPickle时,我得到"ImportError:没有名为'cPickle'的模块"
Python 3.5.0 |Anaconda custom (64-bit)| (default, Dec 1 2015, 11:46:22) [MSC v.
1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cPickle
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'cPickle'
Run Code Online (Sandbox Code Playgroud)
我的理解是cPickle内置了Python 3.5,所以我无法理解为什么找不到cPickle.知道出了什么问题/如何清理/如何解决问题.
我正在寻找一种表示变化程度的版本编号方案,尤其是兼容性.
例如,Apache APR使用众所周知的版本编号方案
<major>.<minor>.<patch>
example: 4.5.11
Run Code Online (Sandbox Code Playgroud)
Maven提出了一个类似但更详细的架构:
<major>.<minor>.<patch>-<qualifier>-<build number>
example: 4.5.11-RC1-3732
Run Code Online (Sandbox Code Playgroud)
Maven版本控制方案在哪里定义?是否有限定符和内部版本号的约定?可能使用maven但不遵循Maven版本方案是个坏主意...
您知道哪些其他版本编号方案?你更喜欢什么方案?为什么?
我几乎只在WCF中开始使用我的模型,并希望获得一些实用的方法来对这些服务进行版本控制.谁能指出我正确的方向?
我在理解Java版本时遇到了问题.我看到很多版本,如1.4.2,1.5和1.6,但我也偶然发现5.0和6.0.我不明白这个版本或进展.
我是Java的新手,我已经阅读了一些关于OpenJDK vs Sun的内容,我想我明白了.这些版本是OpenJDK和Sun之间的区别吗?例如,OpenJDK的最新版本是1.6而Sun的版本是6.0?
所有这些版本对于刚接触Java的人来说都非常困惑.
我正在使用由abbuild表示的版本控制系统,其中a是整体版本(原型,alpha和beta版本为0,主要版本为1),b是里程碑版本(沿着代表原型的行, alpha,beta阶段)和build表示项目编译的次数.
目前,我在应用程序运行时设置了调试标志,从文本文件中读取应用程序,增加数字并保存到文本文件.
我正在寻找一种更"正确"的方法来使用Java和Netbeans来做到这一点.有没有什么方法可以将构建数量注入到构建过程的某个地方?最好将数字保存到项目附带的源文件中 - 而不是依赖附近文件的存在.