我向appharbor上传了一个.NET 4 C#解决方案,但是当appharbor尝试构建它时,其中一个c#类库会生成此错误:
项目 “d:\ TEMP \ cbymsn2u.j0c \输入\ UI \纸盘\ Tray.csproj” 正在建设中 “d:\ TEMP \ cbymsn2u.j0c \输入\企业\履带\ Crawler.csproj” (GetNativeManifest目标): C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(1558,9): 警告MSB3084:尝试任务 在两个位置找到“AxImp.exe”。 1) 在“C:\ Program Files \ Microsoft”下 SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 工具\“处理器特定目录 这是基于生成的 SdkToolsPath 2)x86具体 “C:\ Program”下的目录 文件\微软 SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 工具\“由...指定 SDKToolsPath属性。你可能会 通过做其中一个来解决问题 以下内容:1)设置 “SDKToolsPath”属性给了 Microsoft Windows SDK的位置。 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(1558,9): 错误MSB3086:任务找不到 “AxImp.exe”使用SdkToolsPath “C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \“或注册表项 “HKEY_LOCAL_MACHINE \ SOFTWARE \微软\微软 SDKs \ Windows \ v7.0A“。确保 设置了SdkToolsPath和工具 存在于正确的处理器中 具体位置下 SdkToolsPath和那个微软 Windows SDK已安装完成 建设项目“Tray.csproj” - 失败。
在Crawler.csproj中似乎没有任何不同的引用,那么这个错误会来自哪里?相同的代码在本地构建良好。
答案 0 :(得分:11)
它看起来应该安装该工具的位置,c:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \ AxImp.exe是正常位置。您可以在自己的计算机上验证这一点。我不知道AppHarbor究竟做了什么,但他们故意删除该工具的可能性很大。
在远程构建服务器上运行AxImp.exe的希望渺茫,ActiveX组件不会安装在该计算机上。您需要在自己的工作站上运行AxImp.exe,它只需要执行一次。将它生成的两个程序集添加到项目interop.foo.dll和axinterop.foo.dll中。将其Copy Local属性设置为true。
如果您确实打算在该远程计算机上运行您的应用程序然后立即停止,则不会在该计算机上安装ActiveX控件。安装它应该是一两个奇迹。