为什么我的buildserver中的部署包有其他程序集?

ili*_*ian 61 .net teamcity visual-studio-2010

我有一个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
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能防止这些附加程序集和.nlp文件包含在程序包中?

UPDATE

在对日志文件进行了一些挖掘之后,我发现_CopyFilesMarkedCopyLocal构建任务正在将文件复制到bin目录中.奇怪的是,程序集未标记为本地副本.

ili*_*ian 62

经过一番挖掘后,我注意到构建服务器上有.Net框架,但没有框架SDK.在构建服务器上安装SDK后,不再添加其他程序集.

  • 即使在构建服务器上安装sdk_tools4.msi后,我也有类似的问题.我注意到构建服务器中缺少.net 4.5引用程序集.所以我复制了C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\*来在同一路径上构建服务器.这解决了这个问题. (8认同)
  • 想要注意.NET 4.5的情况也是如此.我必须安装"Windows SDK for Windows 8"的".NET Framework 4.5软件开发工具包"选项,以便从我们的构建服务器上的构建目录中清除这些文件. (7认同)

Edw*_*lde 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"
Run Code Online (Sandbox Code Playgroud)

  • 如果我可以100次投票,我愿意.我有一个问题是清单文件包含我不需要的依赖项,也没有被指定为clickonce包的一部分(打破我的clickonce应用程序).我意识到问题是.nlp,需要一种方法来阻止它们.这诀窍谢谢!! (3认同)