【问题标题】:MVC Scaffolding pollutes .csproj fileMVC 脚手架污染 .csproj 文件
【发布时间】:2011-06-25 22:27:35
【问题描述】:

当我在包管理器控制台中运行自定义 Scaffold 命令时,它会更新默认项目的 .csproj 文件并添加对解决方案中所有其他项目中所有其他文件的引用!

还有其他人看过吗?

有没有办法避免它?

.ps1 文件中唯一可能实际执行任何操作的行如下所示:

Invoke-ScaffoldTemplate -Template $templateFile -Model @{ Name = $MyParam } -OutputPath $outputPath -Force:$Force 

编辑 PS1 文件(在主项目中)中的脚本手动将输出文件的路径定位到其他项目中:

 $outputPath = "..\OtherProject\TargetFolder\" + $EntityName 

在“Invoke-ScaffoldTemplate”命令中,我专门删除了对项目的引用,希望这是问题所在。

【问题讨论】:

  • 嗨达林,我很乐意,但我的问题都没有解决问题的答案!
  • 格伦,如果下面的答案解决了你的问题,你能接受这个答案吗?

标签: visual-studio-2010 asp.net-mvc-3 scaffold


【解决方案1】:

编辑:根据您添加的附加信息进行了更新。感谢您的澄清。

使用诸如“..\OtherProject\Filename”之类的上层路径并不是将文件添加到其他项目的方法 - 这会产生您所看到的奇怪效果。如果将此类路径提供给 Invoke-ScaffoldTemplate,我将考虑添加检查以引发异常。

将文件添加到其他项目的正确方法是简单地将合适的 -Project 参数传递给 Invoke-ScaffoldTemplate。然后,输出将被添加到该项目,路径将被解释为相对于该项目。

例如,

$outputPath = "ExampleOutput"
$wroteFile = Invoke-ScaffoldTemplate -Project "OtherProject" -OutputPath $outputPath -Template $templateFile -Model @{ ... etc ... }

【讨论】:

    猜你喜欢
    • 2014-10-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2011-10-30
    • 2011-08-07
    相关资源
    最近更新 更多