我有一个asp.net mvc部署包,我正在尝试使用团队城市构建。包构建没有任何问题,但bin文件夹包含不需要的文件(并导致站点在存在时失败)。
如果我从visual studio构建相同的包,则不存在其他文件。
其他文件是:
Microsoft.VisualBasic.Activities.Compiler.dll
mscorlib.dll
normidna.nlp
normnfc.nlp
normnfd.nlp
normnfkc.nlp
normnfkd.nlp
System.Data.dll
System.Data.OracleClient.dll
System.EnterpriseServices.dll
System.EnterpriseServices.Wrapper.dll
System.Transactions.dll
如何防止这些额外的程序集和.nlp文件包含在程序包中?
更新
经过一些日志文件挖掘后,我发现_CopyFilesMarkedCopyLocal
构建任务正在将文件复制到bin目录中。奇怪的是,程序集未标记为本地副本。
答案 0 :(得分:62)
经过多次挖掘后,我注意到构建服务器上有.Net框架,但没有框架SDK。在构建服务器上安装SDK后,不再添加其他程序集。
答案 1 :(得分:28)
我在only had 4.5.1 sdk
安装的构建服务器上遇到了同样的问题。
将p:FrameworkPathOverride
参数添加到msbuild
。例如:
msbuild /p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1"
答案 2 :(得分:3)
最简单的解决方案是将我的本地C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework复制到构建服务器
答案 3 :(得分:2)
在运行 Windows Server 2012 R2 的构建服务器上,我遇到了类似的问题 - 以下任务是将不需要的文件复制到输出目录:
[06:47:07]_CopyFilesMarkedCopyLocal
[06:47:07]Copy
[...]
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll" to "bin\Release\mscorlib.dll".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normidna.nlp" to "bin\Release\normidna.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfc.nlp" to "bin\Release\normnfc.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfd.nlp" to "bin\Release\normnfd.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfkc.nlp" to "bin\Release\normnfkc.nlp".
[06:47:07]Copying file from "C:\Windows\Microsoft.NET\Framework\v4.0.30319\normnfkd.nlp" to "bin\Release\normnfkd.nlp".
与@ilivewithian的答案类似,缺少一个包:Microsoft .NET Framework 4.5.2 Developer Pack for Windows Vista SP2, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2008 SP2 Windows Server 2008 R2 SP1, Windows Server 2012 and Windows Server 2012 R2。