小编Dea*_*ean的帖子

如何使用MSbuild通过电子邮件发送多个地址

我的构建脚本中有一个目标,它将发送一封带有附件的电子邮件,详细说明模块的svn更改.

如果我硬编码单个电子邮件地址,这是有效的,但我现在想要通过电子邮件发送多个开发人员并且脚本失败.下面是代码

 <Target Name="MailInformationUpdate" DependsOnTargets="ZipArtifact" Condition="!Exists('BUILD_IS_PERSONAL')">

    <ReadLinesFromFile File="$(BuildDir)\$(recipientListFileName)">
      <Output PropertyName="Recipients"  TaskParameter="Lines"/>
    </ReadLinesFromFile>
    <Mail SmtpServer="$(smptServer)"
           To="@(Recipients)"
           From="$(senderEmail)"
           Body="Attached is a list of the changes made since the last release. "
       Subject="This module has been updated. You may wish to update." Attachments="$(BuildDir)\Builds\$(svnChangeFileName)"   
          />    
  </Target>
Run Code Online (Sandbox Code Playgroud)

如果我更改收件人行以阅读$(收件人),列表中的第一个人将收到电子邮件,后续地址不会收到电子邮件.

然后我将To行更改为你在@(收件人)下面看到的内容,因为我可能会循环每个收件人.没有这样的运气!我收到错误消息

Emailing "{0}".
    <path> error : A recipient must be specified.
Run Code Online (Sandbox Code Playgroud)

我读入的文件只是格式为(emailAddress1),(emailAddress2)等的文本文件

msbuild msbuildcommunitytasks

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

SVN Pre Commit Hooks

我目前正在尝试扩展我们已经存在(并且正在工作)的预提交批处理文件,以便提交到SVN.第一部分阻止任何没有注释并按预期工作的提交.第二部分是阻止用户提交SUO文件的attmept,但是这当前阻止了所有提交.

我对DO脚本的理解不是很好,所以我怀疑它可能是我对FindStr的使用?

有人可以帮忙吗?

"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO OK
echo "Commit Comments are Required" >&2
exit 1
:OK
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" diff -t %2 %1 | FindStr /R "[a-zA-Z]\.suo"
IF %ERRORLEVEL% EQU 0 exit 0
echo "SUO files cannot be committed" >&2
exit 1
Run Code Online (Sandbox Code Playgroud)

svn batch-file pre-commit findstr svn-hooks

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

什么时候可以使用结构而不是类

在我最近工作的一个项目中,我在班上创建了一个结构来解决我遇到的问题,当一位同事看着我的肩膀时,他看起来很嘲弄这个结构并说"把它变成一个班级".

除了我在这个类中需要它之外,我没有任何关于不将它移动到类中的论据,但这种情况有所下降,因为我不能将它作为嵌套类吗?

什么时候可以使用结构?

.net c# vb.net

3
推荐指数
2
解决办法
696
查看次数

从Where-Object计算对象

我目前正在尝试编写一个小的PowerShell脚本(我没有使用Powershell脚本的经验,因此希望将其用作测试),它循环遍历我们的svn存储库,计算已经通过评论"已审核;否"进行了多少次提交-one"因为这表示未经审核的提交.

我目前有以下内容

$repositorys = @("Path1", "path2","path3","path4")
$matches = 0
foreach ($path in $repositorys){
"Path: {0}" -f $path.tostring() 
( [xml] (svn log --xml $path)).log.logentry | Where-Object {$_.msg -imatch "(Reviewed By: (no(.*)one))" } | measure-object | format-list

}
Run Code Online (Sandbox Code Playgroud)

这给了我带有计数的输出,具体取决于它找到的匹配数量

          Count Average             Sum                 Maximum             Minimum             Property
          ----- -------             ---                 -------             -------             --------
              1
Run Code Online (Sandbox Code Playgroud)

如果我删除了measure-object,那么我将获得SVN提交的详细信息(修订版,作者,消息,日期等)

基本上我想要报告的是未经审核的提交的数量和细节(所以基本上是上述两种方法之间的合并).所以我的报告看起来像

路径1:

Number of un-reviewed commits: xx
   Revision             Author
   --------             ------- 
    x                    x
Run Code Online (Sandbox Code Playgroud)

谁能开导我?这可能吗?

powershell

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

通用列表复制引用而不是创建copiedList

当我尝试在列表中运行枚举器然后执行一些操作时,我正在开发一个小函数.(下面是我想要做的事情的想法.

当我试图删除时,我得到了一个"收藏无法修改",在我实际醒来之后,我意识到tempList必须刚刚被分配了myLists引用而不是myLists的副本.在那之后我试图找到一种说法

tempList = myList.copy

但似乎没有什么?我最后编写了一个小的for循环,然后将myLsit中的每个项目添加到tempList中,但我原以为会有另一种机制(如clone?)

所以我的问题:

  • 我的假设是关于tempList接收对myList的引用是正确的
  • 如何将列表复制到另一个列表?

        private myList as List (Of something)
    
    sub new()
        myList.add(new Something)
    end sub
    
    sub myCalledFunction()
        dim tempList as new List (Of Something)
        tempList = myList
        Using i as IEnumerator = myList.getEnumarator
           while i.moveNext
               'if some critria is met then 
               tempList.remove(i.current)
           end
        end using
    
    end sub
    
    Run Code Online (Sandbox Code Playgroud)

vb.net generics reference

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

通过值x,y和z在List(Of T)中查找项目

我有以下设置:

Class A
      property x as string
      property y as int
      property z as String

End Class

Class CollOfA
    inherits List(Of A)

End Class
Run Code Online (Sandbox Code Playgroud)

我想要的是集合中的Item属性,我可以说:

dim c as new CollOfA
c.item("this", 2, "that")
Run Code Online (Sandbox Code Playgroud)

我试过在CollOfA中实现以下内容:

Class CollOfA
    inherits List(Of A)

    Default Public Overridable Shadows ReadOnly Property Item(ByVal x As String, ByVal y As Integer, byval z as string)
        Get
            ' I want to do something like:
            ' ForEach item in me see if anything matches these three things

        End Get
    End …
Run Code Online (Sandbox Code Playgroud)

vb.net generics

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

try块内的DataReader导致潜在的空引用错误

可能有一个简单的解决方案,但我目前有类似的代码

dim dr as dbDataReader

try
      dr = connection.getDataReader(sql_str)
Catch ex as sqlClientException
     log.error(ex)
finally 

  if not IsNothing(dr) then
    dr.close
  end if
end try
Run Code Online (Sandbox Code Playgroud)

但是,Visual Studio仍然警告我

if not IsNothing(dr) then
        dr.close
      end if
Run Code Online (Sandbox Code Playgroud)

可能导致NullReferenceException.减轻这种情况的最佳方法是什么?我无法将声明移到try块中.

vb.net exception visual-studio

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

在页面呈现时显示Ajax Loader

这可能是一个简单的问题,但是如何在构建页面时最好地使用ASP.NET中的AJAX加载器来提供加载对话框?

我目前有一个UpdatePanel,它带有一个关联的UpdateProgressPanel,它包含ProgressTemplate中的加载消息和gif.

目前我有一个onLoad()的页面并获取业务实体然后显示它们.虽然它这样做我想显示一个AJAX加载器.

在页面加载中没有任何内容并且在onLoadComplete或unLoad()上触发隐藏按钮会更好吗,然后等待按钮单击方法完成显示UpdateProgressPanel?

vb.net asp.net ajax page-lifecycle

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

如何通过Web服务提供Excel电子表格

是否可以通过Web服务提供Excel电子表格.我认为不是因为ASP.NET Web服务似乎只处理可以使用excel二进制格式的Serializable元素(我认为).如果Excel以XML格式保存,这会有效吗?

我有许多报告将通过电子邮件发送,但请求已经允许这些报告通过Web服务提取.

这可以实现吗?

vb.net asp.net web-services

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

ASP.NET如何使用EntityDataSource在gridview上添加删除确认

我有一个使用Entity Framework的.NET4 Web应用程序

在我的一个页面中,我有一个绑定到实体数据源的gridview.在我的Gridview定义中

<asp:CommandField ShowDeleteButton="True" ShowEditButton="True"  /> 
Run Code Online (Sandbox Code Playgroud)

并且定义了EntityDataSource

<asp:EntityDataSource ID="eds_timesheets" runat="server" ConnectionString="name=TIME_ENTRY_DB"
                DefaultContainerName="TIME_ENTRY_DB" EnableDelete="True" EnableFlattening="False"
                EnableUpdate="True" EntitySetName="TIMESHEETs" Include="USER, ACTIVITY, PROJECT"
                EntityTypeFilter="TIMESHEET">
            </asp:EntityDataSource>
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作,但我现在想要在意外按下的情况下确认删除.

我已经尝试将代码放在gridview的row命令上,它会注册一个javascript警报窗口但是此时似乎EntityDataSource已经执行了它的删除.

GridView命令字段没有OnClientClick来放置一个小的JavaScript代码段.

有没有人扼杀并随后解决了这个问题?是否更容易拥有链接按钮并自己处理实体数据源的删除?

vb.net asp.net entity-framework

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