小编the*_*nja的帖子

如何自动将NuGet包更新到最新的可用版本

我有两个存储库,我需要从另一个存储库中编译库.我不想手动检查repo1的更新库,并复制/提交到repo2,因为这是愚蠢的.我已经在每个必要库的构建上创建了repo1构建NuGet包,并将它们发布到内部NuGet服务器.然后repo2中的项目可以引用这些NuGet包,一切都(几乎)正常工作.

最后一个障碍是自动更新repo2项目中的NuGet包.由于我不知道repo1中的库何时会更新(我不应该),我想在repo2中的项目上进行某种构建事件,它将自动更新NuGet包.我目前只有一个预构建事件,但由于packages.config文件包含已安装软件包的版本号,我不断在repo2中获取修改过的文件(packages.config文件得到更新).

所以我的问题是:什么是自动升级NuGet包而不破坏我的repo2 VCS​​的好方法?ScottGu说这里(在评论中)可以将软件包升级挂钩到CI版本,但他没有说明我当前的解决方案是如何混乱的.有没有我错过的内置方式?或者更好的解决方案?

continuous-integration nuget nuget-package

39
推荐指数
1
解决办法
2万
查看次数

通过Visual Studio 2015使用Visual Studio 2012工具进行编译

我有很多开发人员目前正在使用Visual Studio 2012,我想分两个阶段将它们升级到2015.首先升级到Visual Studio 2015,然后升级到新的MSBuild(编译器)工具集.这很重要,因为我希望在Visual Studio中构建使用相同的工具集作为构建脚本中的构建,这些构建脚本可在开发人员计算机上使用并由构建服务器使用.我想避免选择一天并告诉每个开发人员安装Visual Studio 2015,同时将更改集推送到我们的存储库/分支机构以一次更新构建脚本.

从我的理解中,ToolsVersion属性中的项目元素在项目文件驱动的MSBuild版本之间的区别.但是,在Visual Studio 2015中使用ToolsVersion = 4.0构建项目时,我收到以下消息:

使用工具版本"14.0"构建.
项目文件包含ToolsVersion ="4.0".此工具集可能未知或缺失,在这种情况下,您可以通过安装相应版本的MSBuild来解决此问题,或者出于策略原因,可能已将构建强制转换为特定的ToolsVersion.将项目视为具有ToolsVersion ="14.0".有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=293424.

除此之外,我可以按照构建输出看到它实际上是使用Visual Studio 2015工具集来编译代码.我知道"4.0"工具集不会丢失(我安装了Visual Studio 2012,以及包含该版本MSBuild的.NET Framework版本),所以我假设Visual Studio 2015无法找到它,或者那里是一个"政策原因",我不明白.

根据标准和自定义工具集配置的MSDN页面,MSBuild 12.0(Visual Studio 2013)包括4.0工具集.但是我在MSBuild 14.0(Visual Studio 2015)上找不到任何信息.

是否可以在Visual Studio 2015中构建,但使用Visual Studio 2012工具集?如果是这样,怎么样?构建警告中提到的"政策原因"是什么?

msbuild visual-studio-2012 visual-studio-2015

5
推荐指数
1
解决办法
3055
查看次数

如何在VS2015中禁用"npm install"

在VS2015中,打开使用节点包(例如gulpfile.js)的Web项目/解决方案将导致VS自动运行"npm install"并安装所有软件包.VS2015附带了旧版本的npm(1.4.19),它不会对包依赖关系进行"平面"安装,这会导致创建超过260个字符的路径.每次打开Visual Studio时都会发生这种情况非常痛苦.我找到了几个解决方法(包括http://jameschambers.com/2015/09/upgrading-npm-in-visual-studio-2015/),但理想情况下会有某个设置禁用"auto npm install"或类似的东西,我要么找不到设置,要么就不存在.

npm visual-studio-2015 npm-install

5
推荐指数
1
解决办法
2875
查看次数

当脚本的路径完全限定时,在删除服务器上执行Powershell会失败

我有两个服务器在同一个域上运行Windows Server 2012 R2,\ tt-sql.perf.corp和\ tt-file.perf.corp.文件服务器上的共享文件夹中有一个Powershell脚本,\ tt-file.perf.corp\fileshare\helloworld.ps1.我在sql server上有一个应用程序执行以下命令:

powershell -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& '\tt-file.perf.corp\fileshare\helloworld.ps1'"

它失败了,出现以下错误:

&:AuthorizationManager检查失败.在行:1 char:3 +&'\ tt-file.perf.corp\fileshare\helloworld.ps1'+ ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:SecurityError:(:) [],PSSecurityException + FullyQualifiedErrorId:UnauthorizedAccess

如果我更改使用IP地址的路径,它也会失败.

但是,当脚本的路径不完全限定时,它可以工作: powershell -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& '\tt-file\fileshare\helloworld.ps1'"

Windows Management Instrumentation服务正在两台服务器上运行.我也在两台服务器上运行了Get-ExecutionPolicy,两者都设置为Unrestricted.两台服务器上都禁用了UAC.这是怎么回事?

powershell fully-qualified-naming windows-server-2012-r2

4
推荐指数
1
解决办法
8834
查看次数