为什么我的buildserver的部署包有额外的程序集?
我有一个asp.net mvc部署包,我正在尝试与团队城市一起构build。 该包生成没有任何问题,但bin文件夹包含不需要的文件(并导致网站在存在时失败)。
如果我从Visual Studio构build相同的包,那么附加文件不存在。
其他文件是:
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文件被包含在程序包中?
UPDATE
经过多日志文件挖掘后,我发现_CopyFilesMarkedCopyLocal
构build任务正在将文件复制到bin目录中。 奇怪的是,程序集没有标记为本地复制。
更多的挖了一堆后,我注意到构build服务器有.Net框架,但不是框架SDK。 在生成服务器上安装SDK之后,不再添加其他程序集。
我only had 4.5.1 sdk
安装only had 4.5.1 sdk
的构build服务器上遇到同样的问题。
固定
将p:FrameworkPathOverride
参数添加到msbuild
。 例如:
msbuild /p:FrameworkPathOverride="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1"
最简单的解决scheme是将我的本地C:\ Program Files文件(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework复制到构build服务器
在运行Windows Server 2012 R2的构build服务器上,我遇到了类似的问题 – 以下任务是将不需要的文件复制到输出目录:
[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的答案类似,缺less一个软件包: 用于Windows Vista SP2,Windows 7 SP1,Windows 8,Windows 8.1,Windows Server 2008 SP2的Microsoft .NET Framework 4.5.2开发包 Windows Server 2008 R2 SP1,Windows Server 2012和Windows Server 2012 R2 。