小编Ben*_*ann的帖子

定制共同目标以构建解决方案

我创建了一个自定义公共目标"RealClean",它删除了输出和"中间输出"目录中的每个文件.我把它放在Microsoft.Common.targets文件中.当我在我的csproj上运行MsBuild时一切都很好.但是当我在我的sln上运行MsBuild(它只是引用csproj列表)时出现以下错误

error MSB4057: The target "RealClean" does not exist in the project.
Run Code Online (Sandbox Code Playgroud)

这是我输入运行MsBuild的命令行

C:\Windows\Microsoft .NET\Framework\v3.5\MsBuild.exe /p:Configuration="Release";OutputPath="..\..\MSBuild.Referentiel.net35";nowarn="1591,1573" /t:RealClean mySolution.sln
Run Code Online (Sandbox Code Playgroud)

任何提示?

msbuild projects-and-solutions target

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

MsBuild没有查找自定义任务的第二级依赖项的良好目录

我写了一个MsBuild任务:MyTask.在我的解决方案中,我有Task项目和其他项目.MyTask引用了一个引用第三个程序集的项目(比如ProjA),比如说(dep1和dep2).

这些项目都构建良好,我将输出放在一个目录(Compil)中.在这个目录中我有我想要的所有dll:MyTask.dll,ProjA.dll,dep1.dll,dep2.dll等.

在我的MsBuild文件中,我包含自定义任务程序集:

<UsingTask AssemblyFile="..\Compil\MyTask.dll" TaskName="CreateSitesCss" />
Run Code Online (Sandbox Code Playgroud)

然后我调用MyTask程序集的任务.该调用执行得很好但是MsBuild抱怨没有找到dep1和dep2程序集(尽管它们位于同一目录中):

错误:无法加载文件或程序集'dep1,Version = 2.0.0.0,Culture = neutral,PublicKey Token = 9109c11469ae1bc7'或其依赖项之一.该系统找不到指定的文件.

我可以通过将dep1.dll和dep2.dll复制到c:\ windows\microsoft .net\framework\v4.0 \来解决这个问题,但我不想这样做,因为它在构建其他项目时会触发问题(赢了' t将dep1.dll和dep2.dll复制到输出目录...).

有没有人有同样的问题,或更好的解决方案?


编辑

这是Fusion Log Viewer的输出

*** Assembly Binder Log Entry  (19/10/2010 @ 17:52:45) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = HEADOFFICE\bbaumann
LOG: DisplayName = ProjA
 (Partial)
WRN: …
Run Code Online (Sandbox Code Playgroud)

msbuild dependencies msbuild-task assembly-resolution probing

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

svndumpfilter --drop-empty-revs保持填充修订版

我们将一个大的svn存储库(100k + revs)拆分成几个较小的存储库.我使用svndumpfilter(v1.7.2)拆分转储和svndumptool/sed来过滤大转储.

一切正常,除了我的过滤转储中仍然有一些"填充修订版",即使我使用了"drop-empty-revs"选项.

当我们有不到10%的无用"填充修订版"时,这不是太成问题,但有时,新的repo只有几百个真正的修订版本埋没在30k +"填充修订版"中.

这是我使用的命令和包含的修订

svndumpfilter --drop-empty-revs --renumber-revs include /MyProj < MassiveOldRepo.dump > NewAllCleanRepo.dump

------------------------------------------------------------------------
r3453 | (no author) | 2005-09-29 17:27:54 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------
r3454 | (no author) | 2005-09-29 17:28:27 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------    
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法不包括这些修订,因为我正在过滤转储(没有手动从过滤转储中删除它们).

编辑:我想补充说,我使用了svndumpfilter一些空的修订版,第一个"真正的"修订版之前的版本和最后一个"真正的"版本之后的版本.

svn svndumpfilter svnadmin

6
推荐指数
2
解决办法
5254
查看次数

将 netcore IConfigurationSection 绑定到动态对象

在我的 appSettings.json 中,我有一个配置部分,只要它是有效的 json,就可以包含任何内容。它通常是一组键/值(字符串/字符串)

我想在我的代码中获取它并在控制器调用中返回它。

我查看了源代码(https://github.com/aspnet/Configuration/blob/6d9519622b5db2c5ac6bafa8bcdb25fe27914de3/src/Config.Binder/ConfigurationBinder.cs),似乎我注定要使用现成的解决方案。

如果我将用例限制为键值对,我可以在 IConfigSection 中使用 AsEnumerable() ,这很好。如果我想允许列表,那么我可能仍然可以解析要查找的键 :Number 但是有人有办法轻松反序列化随机对象吗?或者甚至更好地获取配置部分,而不对其进行反序列化。

例如

{
 "mySettings": 
 {
   "key1": "value1",
   "key2": "value2",
   "list": [ "item1", "item2", "item3" ],
   "complexObject": {
     "key": "value",
     "anything" :  [{"id": "3", "name": "John"}]
   }
 }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core-mvc asp.net-core

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

脚本远程控制IIS 7

我的服务器在Windows Server 2008,IIS 7上运行.
我的客户端是Windows Server 2003或Windows XP.

我想远程启动/停止网站.
我很容易在我的客户端机器上使用IIS 7管理器以交互方式进行操作(参见http://blogs.iis.net/bdela/archive/2007/10/08/remote-administration-managing-iis-7-rco-from -windows-xp-2k3-and-vista.aspx)

但我想以非交互方式进行,目标是将其编写为msbuild脚本的一部分.

我尝试了MSBuildExtensionPack,但只有在客户端站点上安装IIS7时它才有效.我尝试了PowerShell cmdlet,但我必须在服务器上启动dcom(http://learn.iis.net/page.aspx/160/writing-powershell-commandlets-for-iis-70/).

我能做什么?

msbuild powershell iis-7 administration

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

Cruisecontrol发布命令onfailure

发布我当前的项目状态时遇到问题.

制图:

<publishers>  
  <xmllogger /><!-- Log For WebDashboard ##Do not remove##-->    
  <email>
    ...
  </email>
  <onfailure>  
    <exec>
      <executable>echo ERROR > logs/status.txt</executable>
    </exec>
  </onfailure>            
</publishers>
Run Code Online (Sandbox Code Playgroud)

当我想启动我的服务时,我收到以下消息:

ThoughtWorks.CruiseControl.Core.Config.ConfigurationException:无法从配置文档中实例化CruiseControl项目.配置文档可能缺少正确填充CruiseControl配置所需的Xml节点.无法加载数组项'onfailure' - 无法从类型System.String转换为ThoughtWorks.CruiseControl.Core.ITask为具有值的对象:"echo ERROR> logs/status.txt"

有谁知道这个消息是什么意思?

谢谢你的期待

亚历克斯

cruisecontrol.net conditional publisher

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

我们应该从Nant切换到Msbuild吗?

目前我们使用nant,ccnet(巡航),svn,Nant.我使用msbuild来做我的sln构建只是因为它更容易出壳.

将我的整个构建脚本切换到MSBuild有什么好处吗?

我需要能够运行单元测试,部署.这更容易吗?

cruisecontrol.net msbuild nant

0
推荐指数
1
解决办法
244
查看次数