我创建了一个自定义公共目标"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任务: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
我们将一个大的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一些空的修订版,第一个"真正的"修订版之前的版本和最后一个"真正的"版本之后的版本.
在我的 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) 我的服务器在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/).
我能做什么?
发布我当前的项目状态时遇到问题.
制图:
<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"
有谁知道这个消息是什么意思?
谢谢你的期待
亚历克斯
目前我们使用nant,ccnet(巡航),svn,Nant.我使用msbuild来做我的sln构建只是因为它更容易出壳.
将我的整个构建脚本切换到MSBuild有什么好处吗?
我需要能够运行单元测试,部署.这更容易吗?
msbuild ×4
asp.net-core ×1
c# ×1
conditional ×1
dependencies ×1
iis-7 ×1
msbuild-task ×1
nant ×1
powershell ×1
probing ×1
publisher ×1
svn ×1
svnadmin ×1
target ×1