首先,在所有Nuget代码中,我试图弄清楚要引用哪一个.
主要问题是,给定一个Nuget包名称,是否有一种编程方式从nuget feed中检索版本以及一般消费的最新版本?
例如,给定ILMerge的包名称,获得2.13.307的最新包版本会很不错.
//pseudo code, makes a lot of assumptions about nuget programmatic interfaces
PackageRef currentVersion = nugetlib.getpackageinfo(args[0]);
Console.WriteLine("Package Id: '{0}':", pkg.Id);
Console.WriteLine(" Current version: {0}", pkg.Version);
Console.WriteLine(" Available versions: {0}", String.Join(",",pkg.Versions.Select(_=>_)));
Run Code Online (Sandbox Code Playgroud) git在开始结帐操作时会做什么?它写出锁文件还是什么?
我使用gulp,如果git正在积极执行结账操作,我希望它能"暂停"观察者.
我没关系,可能不得不"重新安置"一些东西,让文件观察者恢复正常.
给定命令行构建步骤,使用以下自定义脚本:
msdeploy -verb:sync -source:package='%teamcity.build.projectid%\%WebProjectName%.csproj.zip'
Run Code Online (Sandbox Code Playgroud)
我怎么能看到变量最终被替换了?
我没有看到任何"详细日志记录"选项,它保存用于在任何地方调试构建服务器的最终输出
给定一组整数,一个“功能组”,是否有更好的方法来获取整数的 GetHashCode,其中数字的位置不影响哈希?
void Main()
{
int[] ints = { 10001, 10002, 10003, 10004, 10005 };
int hash = GetHashCode(ints);
Console.WriteLine("hash={0}", hash);
}
int GetHashCode(IEnumerable<int> integers)
{
IEnumerator<int> intEnum = integers.GetEnumerator();
if(intEnum.MoveNext()==false) return 0;
int hash = 0;
unchecked {
hash = intEnum.Current.GetHashCode();
for(;intEnum.MoveNext()==true;)
hash = 31 * hash + intEnum.Current.GetHashCode();
}
return hash;
}
Run Code Online (Sandbox Code Playgroud)
这个输出是:hash=954101523 如果我交换 10003 和 10002 我得到:hash=954130353
除了在获取散列之前对列表进行排序之外,如果列表位置中的项目发生变化,是否有更好的选择不会改变?
整数列表基本上代表一组作为“功能组”的记录 ID,因此“功能组”实际上是关键,而不是真正依赖于顺序