我在Visual Studio 2013中使用NodejsTools,但可以将我的项目发布到Azure。当我构建我的文件时,我收到以下错误:
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Node.js Tools \ Microsoft.NodejsTools.targets(115,5):错误MSB4018:The “AssignTargetPath”任务意外失败。 System.IO.PathTooLongException:指定的路径,文件名或两者 太长了完全限定的文件名必须小于260 字符和目录名称必须少于248个字符。
有关如何修复此问题的任何线索/让我的节点项目发布到Azure?
更新1:如果我将项目移动到Windows C:驱动器中的根文件夹,则构建错误消失并构建成功。但是,如果我尝试发布,它会失败并且没有说明原因:
------发布开始:项目:MyProject,配置:释放任何CPU ------ Auto ConnectionString将Web.config转换为 OBJ \发布\ CSAutoParameterize \转化\ Web.config文件。全部复制 文件到包含/发布的临时位置: OBJ \发布\包\ PackageTmp。
==========构建:0成功,0失败,1最新,0跳过========== ==========发布:0成功,1失败,0跳过==========
答案 0 :(得分:2)
我遇到了同样的问题。在visual studio模板中创建的路径确实太长,无法在Azure上传。路径可能在您的" node_modules"文件夹中。
我解决了这个问题如下: 在项目文件夹中,我删除了文件夹" node_modules",其中包含构建项目所需的所有模块。您可以稍后添加这些模块,所以不用担心。
打开visual studio,重新加载解决方案并在Azure帐户上再次发布项目。 Visual Studio现在可能不会返回任何错误,因为所有路径都短于240个字符。
然后,登录Azure门户,打开您的Web应用程序,然后单击"添加磁贴"并添加控制台磁贴。打开控制台磁贴并运行命令" npm install"。此命令添加项目中的所有依赖项,因此添加文件夹" node_modules"包含项目所需的所有模块。您可以使用" Visual Studio Online Extension"。
查看您的项目并使用它们答案 1 :(得分:0)
如果没有错误代码,则很难进行故障排除。
我建议您在<PropertyGroup>
项目文件中检查<OutputPath>.</OutputPath>
node.js
等.njsproj
值,这些值以class TableViewController: UITableViewController
{
var lastSelectedIndexPath = NSIndexPath(forRow: -1, inSection: 0)
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath)
// Configure the cell...
cell.textLabel!.text = "row: \(indexPath.row)"
if cell.selected
{
cell.selected = false
if cell.accessoryType == UITableViewCellAccessoryType.None
{
cell.accessoryType = UITableViewCellAccessoryType.Checkmark
}
else
{
cell.accessoryType = UITableViewCellAccessoryType.None
}
}
return cell
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
let cell = tableView.cellForRowAtIndexPath(indexPath)
if cell!.selected
{
cell!.selected = false
if cell!.accessoryType == UITableViewCellAccessoryType.None
{
cell!.accessoryType = UITableViewCellAccessoryType.Checkmark
}
else
{
cell!.accessoryType = UITableViewCellAccessoryType.None
}
}
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return 100
}
}
结尾。任何信息,请与我分享。
在我的测试中,我必须通过Azure Node.js应用程序模板创建一个nodejs应用程序,以便我可以将其发布到Azure Web Apps。
您可以尝试使用Azure Node.js应用程序创建新的node.js应用程序,并检查是否可以将其发布到Azure Web App。成功将应用程序发布到Azure后,您可以将代码复制到此项目中,然后再次尝试发布。
如有任何疑虑,请告诉我。