小编mlh*_*Dev的帖子

如何使用命令行msbuild部署VS2012网站项目而不进行预编译?

我继承了一个非常大的VS2012网站项目(不是Web应用程序),我正在尝试自动化它的部署.项目中有大量的循环引用,所以要使用aspnet_compiler.exe进行预编译我必须打开fixednames.问题是它导致我的四核,16gb ram,ssd开发者机器上的构建需要大约20分钟.之前的开发人员不必处理这个问题,因为他只是将整个源代码复制到生产Web服务器上.

所以在我解决循环引用问题之前,我想至少使用msdeploy自动部署项目.我可以使用visual studio中的发布配置文件,它完全符合我的要求:

  1. 构建引用的DLL并将它们添加到项目中.
  2. web.config是否会转换.
  3. 甚至没有尝试构建网站,只是为我打包成一个zip文件.

我无法弄清楚我的生活是如何让MSBuild.exe做同样的事情!

MSBuild.exe WebProject.vs2012.sln /m /T:Build 
    /p:Configuration=Release`;DeployOnBuild=true`;PublishProfile=TestDeploy
Run Code Online (Sandbox Code Playgroud)

上面的命令仍然尝试执行aspnet_compiler,这不是我想要的.发布配置文件说不应该预编译...但在日志中我看到它正在执行它.

那么:如何在不预编译的情况下使用msbuild部署网站项目?

asp.net msbuild vs-web-site-project msdeploy visual-studio-2012

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

什么是反向合并

我在git-flow脚本上观看了一些视频,其中一个术语是"后合并" - 例如,将修补程序合并到master中,然后将其合并到develop中.

我假设返回merge是一个概念而不是本机git命令.什么确切的命令包含后合并操作?

git git-flow

9
推荐指数
3
解决办法
1万
查看次数

如何确定是否需要复制本地

我尝试在我的MVC C#项目的Razor视图中引用System.Device.它抱怨说,即使我把它添加到项目中,也没有引用.我没有在我的GAC中组装,并且为了测试我在我的global.asax.cs文件中添加了下面的虚拟行(并且在启用了多个调试标志的情况下编译,我不认为它已经被优化了).

new System.Device.Location.GeoCoordinate();
Run Code Online (Sandbox Code Playgroud)

以及我控制器动作中的这一行:

System.Diagnostics.Debug.WriteLine(System.Device.Location.GeoCoordinate.Unknown.IsUnknown);
Run Code Online (Sandbox Code Playgroud)

这仍然没有做到.找到这个解决方案我检查了我的GAC,但它不存在(这是有道理的,但很好检查).找到此解决方案后,我将引用标记为Copy Local,问题就消失了.

为什么我需要将我的引用标记为Copy Local,即使我明确地调用了库?

.net c# asp.net-mvc visual-studio

6
推荐指数
1
解决办法
71
查看次数

MSBuild:构建 asp.net 4.0 网站:.metaproj -files

我有一个包含 ASP.NET 网站的解决方案文件。

当我使用 .NET 4.0 Beta 2 构建解决方案时

"c:\WINDOWS\Microsoft.NET\Framework\v4.0.21006\MSBuild.exe" d:\MyPath\MySolution.sln

一切正常,没有错误。然后我尝试使用 CruiseControl .NET 任务(由服务运行的 msbuild-script)构建相同的解决方案,相同的解决方案失败了:

D:\MyPath\MyWebSite.metaproj (,): errorMSB4025: 无法加载项目文件。找不到文件“D:\MyPath\MyWebSite.metaproj”。

当然,没有这样的文件。我猜 *.metaproj 是一个类似 .csproj 的 msbuild 文件,它是为网站动态生成的...

但我不知道如何修复错误......我试图谷歌元数据文件但没有运气。我确实尝试手动制作文件,我插入了一个带有 <Task Name="Rebuild"> 的 <Project> 并且编译没有引发任何错误,但我猜该站点没有编译。

同一台机器有 .NET 3.5 和 .NET 4.0 项目以及两个框架的环境变量。

cruisecontrol.net msbuild vs-web-site-project asp.net-4.0 web

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

在Powershell中避免不可知的锯齿状阵列扁平化

我在Powershell中遇到了一个有趣的问题,并且无法找到解决方案.当我谷歌(并找到像这篇文章的东西)时,没有任何涉及我正在尝试做的事情,所以我想我会在这里发布问题.

问题与外部数组长度为1的多维数组有关.似乎Powershell非常坚持像@( @('A') )变为扁平化阵列一样@( 'A' ).这是第一个片段(提示符是>,顺便说一句):

> $a =  @( @( 'Test' ) )
> $a.gettype().isarray
True
> $a[0].gettype().isarray
False
Run Code Online (Sandbox Code Playgroud)

所以,我希望$a[0].gettype().isarray是真的,所以我可以将值索引为$a[0][0](真实场景是在循环内处理动态数组,我想得到值$a[$i][$j],但如果内部项是不被识别为数组但作为字符串(在我的情况下),您开始索引字符串的字符,如在$a[0][0] -eq 'T').

我有几个很长的代码示例,所以我最后发布了它们.并且,作为参考,这是在安装了PSv2和PSCX的Windows 7旗舰版上.

考虑代码示例1:我使用+ =运算符手动构建一个简单的数组.中间阵列$w是扁平的,因此不会正确地添加到最终阵列中.我已经在网上找到类似问题的解决方案,基本上是在内部数组之前插入一个逗号来强制外部数组不会变平,这确实有效,但同样,我正在寻找一种可以在循环内构建数组的解决方案(一个锯齿状的数组数组,处理一个CSS文件),所以如果我将前导逗号添加到单个元素数组(实现为中间数组$y),我想对其他数组(如$z)做同样的事情,但这会产生负面影响如何$z添加到最终数组.

现在考虑代码示例2:这更接近我遇到的实际问题.当从函数返回具有一个元素的多维数组时,它将被展平.它离开函数之前是正确的.再一次,这些都是例子,我真的试图处理一个文件,而不必知道该函数是否会回来@( @( 'color', 'black') )或与@( @( 'color', 'black'), @( 'background-color', 'white') )

有没有人遇到这个,有没有人解决这个问题?我知道我可以实例化框架对象,并且我假设如果我创建一个对象[],列表<>或其他类似的东西,一切都会好的,但我一直在处理这个问题.肯定似乎必须有一个正确的方法来做到这一点(无需实例化真正的框架对象).

代码示例1

function Display($x, [int]$indent, [string]$title)
{
  if($title -ne '') { write-host …
Run Code Online (Sandbox Code Playgroud)

arrays powershell jagged-arrays

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

确定 Server.Transfer[Request] 是否被执行

我正在调试两件事,发现当执行操作时:

Server.TransferRequest(url);
return new EmptyResult();
Run Code Online (Sandbox Code Playgroud)

Application_Error会触发并捕获异常“SessionStateTempDataProvider 类需要启用会话状态”。

(我确实启用了会话状态,特别是 StateServer,为了讨论起见,我们假设我不需要将此请求的更改提交回会话)

我想控制如何记录此场景。显然我可以检测异常类型和消息文本,但如果我不想请求被.TransferRequest“d”(或.Transfer“d”)时进行特殊日志记录,我该怎么做?

我已经检查过了Response.IsRequestBeingRedirected——确实如此false

c# asp.net error-handling asp.net-mvc

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

使用Get-Member进行反射

我基本上喜欢在Powershell中使用反射,在动态找到我想使用标准powershell命令调用的方法之后,我最终得到了一个MemberDefinition对象,并没有太多关于如何调用它的线索.我不能肯定,所以如果你有经验,你可以说不要这样做.我知道我可以进入Assembly命名空间,但不知道我是否可以这样做:

$method = $ie | get-member -type method | ? { $_.name -eq 'span' }
invoke-member $ie $method
Run Code Online (Sandbox Code Playgroud)

$method变量的类型为Microsoft.PowerShell.Commands.MemberDefinition,这是否可能?

谢谢,马修

.net reflection powershell watin

4
推荐指数
2
解决办法
919
查看次数

远程git rebase如此邪恶的详细原因

所以我来自一个集中的VCS背景,并试图确定我们在Git(新公司,年轻代码库)的工作流程.我无法找到一个简单而详细的答案的一个问题是远程分支上的rebase究竟是做什么的.据我所知,它重写了历史,一般应仅限于本地分支机构.

我目前正在尝试审核的工作流涉及一个远程协作分支,每个开发人员"拥有"一个用于共享代码的目的.(在可预见的未来,有2个开发人员和最多3个开发人员,每个项目和功能请求的功能分支似乎过多,而且开销比获得的收益更多.)

然后我遇到了这个答案并尝试了它并且它完成了我想要的东西 - 一个开发人员承诺并经常推送到他自己的合作分支,当他知道什么被批准发布到分期他可以远程变换(压扁和可能在合并开发之前重组.

输入原始问题 - 如果远程分支是出于协作目的,其他人迟早会被拉出来.如果流程/培训问题是没有"访客开发者"对该协作分支的提交,那么分支所有者实际上会对该远程分支进行重新绑定?

git git-rebase

3
推荐指数
1
解决办法
2097
查看次数